300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > python读 写 修改 追写excel文件(xlrd / xlwt / xlutils / openpyxl)

python读 写 修改 追写excel文件(xlrd / xlwt / xlutils / openpyxl)

时间:2021-05-18 07:16:21

相关推荐

python读 写 修改 追写excel文件(xlrd / xlwt / xlutils / openpyxl)

四个工具包

python 操作 excel 的 4 个工具包如下

xlrd: 对 .xls 进行读相关操作xlwt: 对 .xls 进行写相关操作xlutils: 对 .xls 读写操作的整合openpyxl:对 .xlsx 进行读写操作

注意,前三个库都只能操作 .xls,不能操作 .xlsx

这4个工具包都可以直接使用pip进行下载:

pip install xlrdpip install xlwtpip install xlutilspip install openpyxl

xlwt 写 excel文件(.xls)

import xlwtwbk = xlwt.Workbook(encoding="utf-8",cell_overwrite_ok=True) # 创建xls文件,可被复写datasheet = wbk.add_sheet("sheet1") # 创建一个名为sheet1的sheet# 设置单元格的样式,如字体、背景颜色等等style = xlwt.easyxf('pattern: pattern solid, fore_colour red')# 语法:write(n, m, "aaa", [style])===>第n行,第m列,内容, [样式](样式可以不指定,不指定即为默认样式)datasheet.write(0, 0, "aaa", style)datasheet.write(0, 1, "bbb")datasheet.write(1, 2, "ccc")datasheet.write(2, 3, "ddd")wbk.save("数据库信息.xls") # 保存

xlrd 读 excel(.xls)

import xlrddata = xlrd.open_workbook('excelFile.xls') # 打开Excel文件读取数据# 获取sheetthe_sheet = data.sheets()[0] # 通过索引顺序获取(0是第一个sheet) the_sheet = data.sheet_by_index(0) # 通过索引顺序获取,同上 the_sheet = data.sheet_by_name(u'Sheet1') # 通过名称获取# 获取数据,返回值为listdata_list.row_values(1) # 第二行数据(支持负索引取值)data_list.col_values(1) # 第二列数据# 获得行数和列数。rows=sheet_1_by_name.nrows # 行数cols=sheet_1_by_name.ncols # 列数# 输出每一行数据for i in range(rows):print(the_sheet.row_values(i))# 获得指定单元格数据的三种方式data=the_sheet.cell(0,0).value # 第一行第一列data=the_sheet.row(0)[0].value # 第一行第一列data=the_sheet.col(0)[0].value # 第一列第一行

修改excel

row=0 # 修改第一行col=0 # 修改第一列# ctype 0:empty,1:string,2:number,3:date,4:boolean,5:errorcell_type=1 # 修改类型value='Hello,Excel' # 修改内容cell_A1=the_sheet.cell(0,0).value # 获取第一行第一列的值format=0the_sheet.put_cell(row,col,cell_type,value,format) # 修改操作cell_A1=the_sheet.cell(0,0).value # 再看一下,值已被改

xlutils 追写 excel

xlwt 只能创建一个全新的 excel 文件,然后对这个文件进行写入内容以及保存。

但是大多数情况下我们希望的是读入一个 excel 文件,然后进行修改或追加,这个时候就需要 xlutils 了。

下面的 demo 是给一个 excel 文件追加内容:

from xlrd import open_workbookfrom xlutils.copy import copyrexcel = open_workbook("collection.xls") # 用wlrd提供的方法读取一个excel文件rows = rexcel.sheets()[0].nrows # 用wlrd提供的方法获得现在已有的行数excel = copy(rexcel) # 用xlutils提供的copy方法将xlrd的对象转化为xlwt的对象table = excel.get_sheet(0) # 用xlwt对象的方法获得要操作的sheetvalues = ["1", "2", "3"]row = rowsfor value in values:table.write(row, 0, value) # xlwt对象的写方法,参数分别是行、列、值table.write(row, 1, "haha")table.write(row, 2, "lala")row += 1excel.save("collection.xls") # xlwt对象的保存方法,这时便覆盖掉了原来的excel

openpyxl 模块

openpyxl 模块默认可读可写,若只需要读或者写的功能,可以在 open 时指定 write_only 或 read_only 为 True

import openpyxldata = openpyxl.load_workbook('excelFile.xls') # 可读可写data = openpyxl.load_workbook('excelFile.xls', read_only=True) # 只读data = openpyxl.load_workbook('excelFile.xls', write_only=True) # 只写

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。