python excel 操作

这篇具有很好参考价值的文章主要介绍了python excel 操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

excel文件内容如下:

python excel 操作,excel,python

一、xlrd 读Excel 操作

1、打开Excel文件读取数据

file=xlrd.open_workbook(filename)#文件名以及路径,如果路径或者文件名有中文给前面加一个 r

2、常用函数

(1)获取一个sheet工作表

table = file.sheets()[0]             #通过索引顺序获取
table = file.sheet_by_index(sheet_indx)  #通过索引顺序获取
table = file.sheet_by_name(sheet_name)  #通过名称获取
 
# 以上三个函数都会返回一个xlrd.sheet.Sheet()对象
 
names = file.sheet_names()        #返回book中所有工作表的名字
file.sheet_loaded(sheet_name or indx)    # 检查某个sheet是否导入完毕

 (2)行操作函数

nrows = table.nrows   # 获取该sheet中的行数,注,这里table.nrows后面不带().

table.row(rowx)       # 返回由该行中所有的单元格对象组成的列表,这与tabel.raw()方法并没有区别。

table.row_slice(rowx, start_colx=0, end_colx=None)   # 返回由该行中所有的单元格对象组成的列表

table.row_types(rowx, start_colx=0, end_colx=None)  # 返回由该行中所有单元格的数据类型组成的列表;返回值为逻辑值列表,若类型为empy则为0,否则为1

table.row_values(rowx, start_colx=0, end_colx=None)    # 返回由该行中所有单元格的数据组成的列表

table.row_len(rowx)     # 返回该行的有效单元格长度,即这一行有多少个数据

(3)列操作函数

ncols = table.ncols     # 获取列表的有效列数

table.col(colx, start_rowx=0, end_rowx=None)  # 返回由该列中所有的单元格对象组成的列表

table.col_slice(colx, start_rowx=0, end_rowx=None) # 返回由该列中所有的单元格对象组成的列表

table.col_types(colx, start_rowx=0, end_rowx=None)  # 返回由该列中所有单元格的数据类型组成的列表

table.col_values(colx, start_rowx=0, end_rowx=None)  # 返回由该列中所有单元格的数据组成的列表

(4)单元格操作


table.cell(rowx,colx)    # 返回单元格对象

table.cell_type(rowx,colx)   # 返回对应位置单元格中的数据类型

table.cell_value(rowx,colx)    # 返回对应位置单元格中的数据

3、代码演示

(1) 基本函数用法演示

import os
import xlrd

current_path = os.getcwd()
path = os.path.join(current_path, 'test.xlsx')

file = xlrd.open_workbook(path)

# excel中最重要的方法就是book和sheet的操作
'''(1) 获取book(excel文件)中一个工作表 '''
sheet1 = file.sheets()[0]  # 通过索引获取sheet页
sheet1 = file.sheet_by_index(0)  # 通过索引获取sheet页
sheet1 = file.sheet_by_name('Sheet1')  # 通过名称获取sheet页
print(sheet1, sheet1, sheet1)  # 以上三个函数都会返回一个xlrd.sheet.Sheet()对象

names = file.sheet_names()  # #返回文件中所有工作表的名字
print(names)  # ['Sheet1', 'Sheet2']

'''(2)行的操作'''
print('-----------行操作----------------')
nrows = sheet1.nrows  # 获取该sheet中的行数,注,sheet1.nrows后面不带()
print(nrows)  # 3
# 返回由该行中所有的单元格对象组成的列表
print(sheet1.row(2))  # [text:'李四', number:10.0, text:'男', text:'二']
# 返回由该行中切片单元格对象组成的列表(rowx, start_colx=0, end_colx=None)
print(sheet1.row_slice(2, 1, 3))  # [number:10.0, text:'男']
# 返回由该行中所有单元格的数据类型组成的列表,支持开始结束列选择: table.row_types(rowx, start_colx=0, end_colx=None)
print(sheet1.row_types(2))  # array('B', [1, 2, 1, 1])

# 返回由该行中所有单元格的数据组成的列表,支持开始结束列选择  table.row_values(rowx, start_colx=0, end_colx=None)
print(sheet1.row_values(2))  # ['李四', 10.0, '男', '二']

# 返回该行的有效单元格长度,即这一行有多少个数据
print(sheet1.row_len(2))  # 4

'''(3)列操作'''
print('-----------列操作----------------')
ncols = sheet1.ncols  # 获取列表的有效列数
print(ncols)  # 4

print(sheet1.col(0))  # [text:'姓名', text:'张三', text:'李四']
print(sheet1.col_slice(0, 0, 1))  # [text:'姓名']
print(sheet1.col_types(0))  # [1, 1, 1]
print(sheet1.col_values(0))  # ['姓名', '张三', '李四']

'''(4)单元格操作'''
print('-----------单元格操作----------------')
print(sheet1.cell(1, 1))  # number:8.0
print(sheet1.cell_type(1, 1))  # 2
print(sheet1.cell_value(1, 1))  # 8.0

输出内容:

<xlrd.sheet.Sheet object at 0x10b7b77c0> <xlrd.sheet.Sheet object at 0x10b7b77c0> <xlrd.sheet.Sheet object at 0x10b7b77c0>
['Sheet1', 'Sheet2']
-----------行操作----------------
3
[text:'李四', number:10.0, text:'男', text:'二']
[number:10.0, text:'男']
array('B', [1, 2, 1, 1])
['李四', 10.0, '男', '二']
4
-----------列操作----------------
4
[text:'姓名', text:'张三', text:'李四']
[text:'姓名']
[1, 1, 1]
['姓名', '张三', '李四']
-----------单元格操作----------------
number:8.0
2
8.0

(2)案例演示

import os
import xlrd

current_path = os.getcwd()
path = os.path.join(current_path, 'test.xlsx')

xlsx = xlrd.open_workbook(path)

# 通过sheet名查找:xlsx.sheet_by_name("sheet1")
# 通过索引查找:xlsx.sheet_by_index(3)
table = xlsx.sheet_by_index(0)

# 获取单个表格值 (2,1)表示获取第3行第2列单元格的值
value = table.cell_value(2, 1)
print("第3行2列值为", value)

# 获取表格行数
nrows = table.nrows
print("表格一共有", nrows, "行")

# 获取第3列所有值(列表生成式)
name_list = [str(table.cell_value(i, 2)) for i in range(1, nrows)]
print("第3列所有的值:", name_list)

输出:

第3行2列值为 10.0
表格一共有 3 行
第3列所有的值: ['女', '男']

二、xlwt 写Excel操作

1、使用xlwt创建新表格并写入

import xlwt


def fun1():
    '''
    创建新的Excel,并写入内容
    '''
    # 创建新的workbook(其实就是创建新的excel)
    workbook = xlwt.Workbook(encoding='ascii')

    # 创建新的sheet表
    worksheet = workbook.add_sheet("MyNewSheet")

    # 往表格写入内容 (1行1列写入'内容1',3行2列写入'内容2')
    worksheet.write(0, 0, '内容1')
    worksheet.write(2, 1, '内容2')

    # 保存
    workbook.save("NewExcel.xls")
NewExcel.xls 内容:

python excel 操作,excel,python

 2、xlwt设置字体

import xlwt

def fun2():
    '''xlwt 设置字体格式'''

    # 创建新的workbook(其实就是创建新的excel)
    workbook = xlwt.Workbook(encoding='ascii')

    # 创建新的sheet表
    worksheet = workbook.add_sheet("NewSheet2")

    # 初始化样式
    style = xlwt.XFStyle()

    # 为样式创建字体
    font = xlwt.Font()
    font.name = 'Times New Roman'  # 字体
    font.bold = True  # 加粗
    font.underline = True  # 下划线
    font.italic = True  # 斜体

    # 设置样式
    style.font = font

    # 往表格写入内容
    worksheet.write(0, 0, "内容1")
    worksheet.write(2, 1, '内容2', style)

    # 保存
    workbook.save("NewExcel2.xls")

结果:

python excel 操作,excel,python

 3、xlwt 设置列宽

    xlwt中列宽的值表示方法:默认字体0的1/256为衡量单位。xlwt创建时使用的默认宽度为2960,既11个字符0的宽度。
    所以我们在设置列宽时可以用如下方法:width = 256 * 20    256为衡量单位,20表示20个字符宽度。

import xlwt

def fun3():
    '''xlwt 设置列宽
     xlwt中列宽的值表示方法:默认字体0的1/256为衡量单位。xlwt创建时使用的默认宽度为2960,既11个字符0的宽度
     所以我们在设置列宽时可以用如下方法:
        width = 256 * 20    256为衡量单位,20表示20个字符宽度
    '''

    # 创建新的workbook(其实就是创建新的excel)
    workbook = xlwt.Workbook(encoding='ascii')

    # 创建新的sheet表
    worksheet = workbook.add_sheet("NewSheet3")

    # 往表格写入内容
    worksheet.write(0, 0, "内容1")
    worksheet.write(2, 1, '内容2')

    # 设置列宽
    worksheet.col(0).width = 256 * 20

    # 保存
    workbook.save("NewExcel.xls")

结果:

python excel 操作,excel,python

 4、xlwt 设置行高

import xlwt

def fun4():
    '''
    xlwt 设置行高
    行高是在单元格的样式中设置的,你可以通过自动换行通过输入文字的多少来确定行高
    '''
    # 创建新的workbook(其实就是创建新的excel)
    workbook = xlwt.Workbook(encoding='ascii')

    # 创建新的sheet表
    worksheet = workbook.add_sheet("NewSheet3")

    # 往表格写入内容
    worksheet.write(0, 0, "内容1")
    worksheet.write(2, 1, '内容2')

    # 设置行高
    style = xlwt.easyxf('font:height 720;')  # 36pt,类型小初的字号
    row = worksheet.row(0)
    row.set_style(style)

    # 保存
    workbook.save("NewExcel.xls")

结果:

python excel 操作,excel,python

5、xlwt合并列和行

import xlwt

def fun5():
    '''合并列和行'''
    # 创建新的workbook(其实就是创建新的excel)
    workbook = xlwt.Workbook(encoding='ascii')

    # 创建新的sheet表
    worksheet = workbook.add_sheet("NewSheet3")

    # 往表格写入内容
    worksheet.write(0, 0, "内容1")

    # 合并 第2行到第3行 的 第1列到第4列
    worksheet.write_merge(1, 2, 0, 3, '合并内容')


    # 保存
    workbook.save("NewExcel.xls")

结果:

python excel 操作,excel,python

 6、xlwt添加边框

import xlwt
def fun6():
    # 创建新的workbook(其实就是创建新的excel)
    workbook = xlwt.Workbook(encoding='ascii')

    # 创建新的sheet表
    worksheet = workbook.add_sheet("My new Sheet")

    # 设置边框样式
    borders = xlwt.Borders()  # Create Borders

    # May be:   NO_LINE, THIN, MEDIUM, DASHED, DOTTED, THICK, DOUBLE, HAIR,
    #           MEDIUM_DASHED, THIN_DASH_DOTTED, MEDIUM_DASH_DOTTED, THIN_DASH_DOT_DOTTED,
    #           MEDIUM_DASH_DOT_DOTTED, SLANTED_MEDIUM_DASH_DOTTED, or 0x00 through 0x0D.
    # DASHED虚线
    # NO_LINE没有
    # THIN实线

    borders.left = xlwt.Borders.DASHED
    borders.right = xlwt.Borders.DASHED
    borders.top = xlwt.Borders.DASHED
    borders.bottom = xlwt.Borders.DASHED
    borders.left_colour = 0x40
    borders.right_colour = 0x40
    borders.top_colour = 0x40
    borders.bottom_colour = 0x40

    style = xlwt.XFStyle()  # Create Style
    style.borders = borders  # Add Borders to Style

    worksheet.write(2, 3, '内容1', style)

    worksheet.write(2, 1, "内容2")

    # 保存
    workbook.save("NewExcel.xls")

结果:

python excel 操作,excel,python 

 7、设置单元格背景颜色

def fun7():

    # 创建新的workbook(其实就是创建新的excel)
    workbook = xlwt.Workbook(encoding='ascii')

    # 创建新的sheet表
    worksheet = workbook.add_sheet("My new Sheet")


    # 创建样式
    pattern = xlwt.Pattern()

    # May be: NO_PATTERN, SOLID_PATTERN, or 0x00 through 0x12
    pattern.pattern = xlwt.Pattern.SOLID_PATTERN

    # May be: 8 through 63. 0 = Black, 1 = White, 2 = Red, 3 = Green, 4 = Blue, 5 = Yellow,
    # 6 = Magenta, 7 = Cyan, 16 = Maroon, 17 = Dark Green, 18 = Dark Blue, 19 = Dark Yellow ,
    # almost brown), 20 = Dark Magenta, 21 = Teal, 22 = Light Gray, 23 = Dark Gray, the list goes on...
    pattern.pattern_fore_colour = 5
    style = xlwt.XFStyle()
    style.pattern = pattern

    # 往表格写入内容
    worksheet.write(0, 0, "内容1")
    # 使用样式
    worksheet.write(2, 1, "内容2", style)

    # 保存
    workbook.save("NewExcel.xls")

结果:

python excel 操作,excel,python

 8、设置单元格对齐

def fun8():

    # 创建新的workbook(其实就是创建新的excel)
    workbook = xlwt.Workbook(encoding='ascii')

    # 创建新的sheet表
    worksheet = workbook.add_sheet("My new Sheet")

    # 设置样式
    style = xlwt.XFStyle()
    al = xlwt.Alignment()
    # VERT_TOP = 0x00       上端对齐
    # VERT_CENTER = 0x01    居中对齐(垂直方向上)
    # VERT_BOTTOM = 0x02    低端对齐
    # HORZ_LEFT = 0x01      左端对齐
    # HORZ_CENTER = 0x02    居中对齐(水平方向上)
    # HORZ_RIGHT = 0x03     右端对齐
    al.horz = 0x02  # 设置水平居中
    al.vert = 0x01  # 设置垂直居中
    style.alignment = al

    # 往表格写入内容
    worksheet.write(0, 0, "内容1")
    # 使用样式
    worksheet.write(2, 1, "内容2", style)

    # 保存
    workbook.save("NewExcel.xls")

结果:

python excel 操作,excel,python

 文章来源地址https://www.toymoban.com/news/detail-633562.html

到了这里,关于python excel 操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python如何操作excel,在excel中读取和写入数据

    Excel 是 Microsoft 为使用 Windows 和 Apple Macintosh 操作系统的电脑编写的一款电子表格软件。直观的界面、出色的计算功能和图表工具,再加上成功的市场营销,使 Excel 成为最流行的个人计算机数据处理软件。在 1993 年,作为 Microsoft Office 的组件发布了5.0版之后, Excel 就开始成为

    2024年02月03日
    浏览(58)
  • 【Python处理EXCEL】基础操作篇3:用Python对Excel表格进行拼接合并

    目录 准备工作 一、横向拼接 1.1 一般拼接 1.2 指定键进行拼接,即指定某一列作为两个表的连接依据。 1.2.1 多对一 1.2.2 多对多 1.2.3 用on来指定多个连接键 1.2.4 指定左右连接键 1.2.5 索引当作连接键 1.3 连接的方式 1.3.1 内连接(inner) 1.3.2 左连接(left) 1.3.3 右连接(right)

    2024年01月17日
    浏览(55)
  • Python小姿势 - Python操作Excel表格数据

    Python操作Excel表格数据 在日常工作中,我们经常会遇到一些需要对表格数据进行处理的情况,比如:数据清洗、数据分析、数据可视化等。对于这些任务,我们可以使用Python来进行操作。 在Python中操作Excel表格数据,我们可以使用xlrd和xlwt这两个库。xlrd是用于读取Excel文件的

    2023年04月25日
    浏览(47)
  • Python 使用XlsxWriter操作Excel

    在数据处理和报告生成的领域中,Excel 文件一直是广泛使用的标准格式。为了让 Python 开发者能够轻松创建和修改 Excel 文件,XlsxWriter 库应运而生。XlsxWriter 是一个功能强大的 Python 模块,专门用于生成 Microsoft Excel 2007及以上版本(.xlsx 格式)的电子表格文件。本文将对XlsxWr

    2024年02月05日
    浏览(37)
  • 【python】Excel文件的读取操作

     输出结果: 需要注意的是,我用的xlrd版本是 1.2.0,不是最新版本的,最新版本可能不支持读取xlsx,所以才会出现读取xlsx文件报错的情况,自行降版本试下  输出结果:  使用pandas模块读取Excel文件时,可能会报:ImportError: Missing optional dependency \\\'openpyxl\\\'. Use pip or conda to ins

    2024年02月13日
    浏览(43)
  • python基于openpyxl操作excel

    环境: python3.11 系统: ubuntu20.04 使用依赖: openpyxl 跳转官网 2.1 创建工作簿 工作簿至少要包含一个工作表(sheet), 可以使用如下来获取它 也可以创建自定义名称的工作表 2.2 查看工作簿下的所有工作表 2.3 访问/修改某个单元格数据 比如说修改A1单元格位置的参数 2.4 保存为文件 2

    2024年02月20日
    浏览(45)
  • python—openpyxl操作excel详解

    openpyxl属于第三方模块,在python中用来处理excel文件。 可以对excel进行的操作有:读写、修改、调整样式及插入图片等。 但只能用来处理【 .xlsx】 后缀的excel文件。 使用前需要先安装,安装方法: 注: 一个excel文件可看做是一个工作簿,工作簿中的一个Sheet就是一个工作表

    2024年02月04日
    浏览(43)
  • Python进阶(九) -- 操作excel文件

    Excel是Microsoft(微软)为使用Windows和macOS操作系统开发的一款电子表格软件。Excel凭借其直观的界面、出色的计算功能和图表工具,再加上成功的市场营销,一直以来都是最为流行的个人计算机数据处理软件。当然,Excel也有很多竞品,例如Google Sheets、LibreOffice Calc、Numbers等,

    2024年02月05日
    浏览(41)
  • 用Python读写操作Excel数据!

    对比其它编程语言,我们都知道Python最大的优势是代码简单,有丰富的第三方开源库供开发者使用。伴随着近几年数据分析的热度,Python也成为最受欢迎的编程语言之一。而对于数据的读取和存储,对于普通人来讲,除了数据库之外,最常见的就是微软的Excel。 Microsoft Excel是

    2024年02月09日
    浏览(44)
  • Python —— excel文件操作(超详细)

    背景 很多公司还是用excel去管理测试用例的,所以为了减少重复繁琐的导出导出工作,学会如何用代码操作excel表格很实用~ 1、操作excel的一些库 1、xlrd:读取库,xlwt:写入,现在基本不用,因为只能处理.xls这种格式的数据 2、使用openpyxl库 :不支持的 .xls格式,支持的格式:

    2024年02月03日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包