Python3 处理excel文件(openpyxl库)

Python3 处理excel文件(openpyxl库)

openpyxl 介绍

openpyxl是一个用于读/写 XLSX/XLSM/XLTX/XLTM文件的python库。openpyxl(可读写excel表)专门处理Excel2007及以上版本产生的xlsx文件;2007一下的版本为xls后缀的文件,需要使用 xlrd和xlwt库进行操作。虽然xlrd和xlwt也可以进行文件读写,但是感觉不能对一个文件同时进行读写操作,我用的时候感觉不是很方便,用openpyxl库可以对一个文件同时进行读写操作(这里的同时指的是在一个py文件只打开关闭一次文件,但可以进行读和写操作,不涉及多线程)

openpyxl 基本操作

新建文件、加载已有文件

import openpyxl
# 如果openpyxl不存在,在cmd中执行 pip insatll openpyxl下载库

# 新建一个空excel,文件名为test,表名为sheet(默认创建),
wb = openpyxl.Workbook()  # 创建新的excel文件,一个工作簿(workbook)在创建的时候同时至少也新建了一张工作表(worksheet)
wb.save('test.xlsx')
# 载入已存在的xslx文件
wb = openpyxl.load_workbook("test.xlsx")

表操作

wb.create_sheet("my_sheet1") # 给文件添加指定名称的工作表
wb.create_sheet(index=1, title="my_sheet2") # 可通过index控制创建的表的位置, index从0开始
sheet_names = wb.sheetnames# 得到工作簿的所有工作表名 结果: ['Sheet','my_sheet2','my_sheet1']
# 根据表名获取工作表
sheet = wb["my_sheet1"]
# 根据表名删除sheet表
wb.remove(wb["my_sheet1"])

读数据

max_row = sheet.max_row # 最大行数
max_col = sheet.max_column # 最大列数
value = sheet.cell(row=1, column=1).value # 获取第1行第1列位置的数据,坐标最小从1开始[xlrd和xlwt是从0开始,要注意一下]
list_row = sheet[1] # 获取第一行数据,行数最小从1开始,数据单元类型为openpyxl.cell.cell.Cell,读取值需要list_row[0].value
list_col = sheet['A'] # 获取A列的数据

写数据

sheet.cell(row=1,column=1,value=1) # 在sheet工作表(1,1)位置写1
sheet["B1"] = "B1"  # 直接修改B1列第1个单元格的值为B1
sheet["B2"] = "B2"  # 新增B2单元格的值为B2
wb.save("test.xlsx") # 最后要保存才有效果
上一篇:spire.xls 将excel转为pdf


下一篇:Java 设置Excel条件格式(高亮条件值、应用单元格值/公式/数据条等类型)C# 创建Excel气泡图