Python | openpyxl模块-Excel读写操作
Python操作Excel文件有三种方法
- 第三方库 xlwt/xlrd:用于生成和读取比较老的excel文件,比如xls格式,最大行数限制为65536行。其中xlrd是读excel,xlwt是写excel的库。
- 第三方库 openpyxl:用于生成2010之后新的excel文件,比如xlsx格式,最大行数限制为1048576行
- 第三方库 pandas:pandas是最强大的数据分析库,自带excel读取和生成模块
本文主要介绍openpyxl模块
一、前言
写入基本操作步骤:
- 1.获取workbook
- 2.获取 worksheet
- 3.再然后获取单元格,进行操作
- 4.保存文件
注:写入和读取单元格有两种基本方法:使用工作表的键(例如 A1 或 D3),或通过cell()
方法使用行和列表示法。
附加:from openpyxl import Workbook 或者 from openpyxl import load_workbook 区别
前者不需要有excle文件存在,可以产生一个;后者需要传入一个excel文件,不能自动产生一个。
二、保存xlsx - 新建文件
import openpyxl # 创建workbook对象 wb = openpyxl.Workbook() # 删除默认创建的一个sheet页 ws = wb['Sheet'] wb.remove(ws) # 给sheet页命名 sheetName = "工作表1" # 创建sheet页 ws = wb.create_sheet(sheetName) # 写入方式1:(行、列、值) ws.cell(row=1, column=1, value="python") ws.cell(row=2, column=1).value = "java" ws.cell(row=3, column=1).value = 2 ws['A4'].value = 3 # 写入方式2:append方法 row = ["A11","A12","A13"] # 向工作表中 按行添加数据 ws.append(row) # 写入方式3:批量写入,for循环方法 link_nums = 100 for i in range(2,link_nums): ws['A'+str(i)] = "WZ202207FF"+str(i) ws['B'+str(i)] = "147258369" ws['C'+str(i)] = "DDYY" # filePath 是指保存的 excel 文件路径 filePath = "新工作簿.xlsx" # 保存xlsx wb.save(filePath)
三、读取xlsx
import openpyxl # fileName 这里是指文件路径 fileName = "sn_test1_500.xlsx" # 使用load_workbook()方法,以只读模式打开工作簿 #指定read_only=True方式,按列读取会失败 wb = openpyxl.load_workbook(filename = fileName,read_only = True) # sheetName 就是 sheet页的名称 sheetName = "Sheet" # 通过 工作表名 获取 工作表 ws = wb[sheetName] # 读取方式1:指定读取 A1、A2和A3单元的内容方法 a1 = ws['A1'].value a2 = ws['A2'] a3 = ws.cell(row=3, column=1).value print(a1) print(a2.value) print(a3) # 读取方式2:用循环读取指定的部分内容['A1,C3'],如:['A,C']-A到C列的全部内容 for row in ws['A1:C3']: for cell in row: print(cell.value) # 读取方式3: # 按行读取 工作表的全部内容 for row in ws.rows: for cell in row: print(cell.value) # 按列读取 工作表的全部内容 for column in ws.columns: for cell in column: print(cell.value)
其他相关操作:
关键代码 | 相关描述 |
---|---|
cell(row, column, value) | 写入数据,三个参数分别是行,列,值 |
cell(row, column).value | 获取指定单元格的值,两个参数分别是行,列 |
workbook.remove('表单名') | 删除表单 |
del workbook['表单名'] | 删除表单 |
workbook.save('文件名') | 保存工作簿 |
sheet.max_row | 获取表单数据的总行数 |
sheet.max_column | 获取表单数据的总列数 |
sheet.rows | 获取按行所有的数据 |
sheet.columns | 获取按列所有的数据 |
参考:
https://blog.csdn.net/xiao_luo_hao/article/details/114627172
https://blog.csdn.net/qq_38830593/article/details/102870762