python处理excel数据python从零基础开始处理excel从零基础开始用Python处理Excel数据




python处理excel数据python从零基础开始处理excel从零基础开始用Python处理Excel数据

2022-07-20 21:30:12 网络知识 官方管理员
python处理excel数据(python从零基础开始处理excel)(1)

python中文社区

各种数据需要导入Excel?多个Excel要合并?目前,Python处理Excel文件有很多库,openpyxl算是其中功能和性能做的比较好的一个。接下来我将为大家介绍各种Excel操作。

打开Excel文件

新建一个Excel文件

>>>fromopenpyxlimportWorkbook>>>wb=Workbook

打开现有Excel文件

>>>fromopenpyxlimportload_workbook>>>wb2=load_workbook('test.xlsx')

打开大文件时,根据需求使用只读或只写模式减少内存消耗。

wb=load_workbook(filename='large_file.xlsx',read_only=True)wb=Workbook(write_only=True)

获取、创建工作

获取当前活动工作表:

>>>ws=wb.active

创建新的工作表:

>>>ws1=wb.create_sheet("Mysheet")#insertattheend(default)#or>>>ws2=wb.create_sheet("Mysheet",0)#insertatfirstposition#or>>>ws3=wb.create_sheet("Mysheet",-1)#insertatthepenultimateposition

使用工作表名字获取工作表:

>>>ws3=wb["NewTitle"]

获取所有的工作表名称:

>>>print(wb.sheetnames)['Sheet2','NewTitle','Sheet1']使用for循环遍历所有的工作表:>>>forsheetinwb:...print(sheet.title)

保存

保存到流中在网络中使用:

>>>fromtempfileimportNamedTemporaryFile>>>fromopenpyxlimportWorkbook>>>wb=Workbook>>>withNamedTemporaryFileastmp:wb.save(tmp.name)tmp.seek(0)stream=tmp.read保存到文件:>>>wb=Workbook>>>wb.save('balances.xlsx')保存为模板:>>>wb=load_workbook('document.xlsx')>>>wb.template=True>>>wb.save('document_template.xltx')

单元格

单元格位置作为工作表的键直接读取:

>>>c=ws['A4']

为单元格赋值:

>>>ws['A4']=4>>>c.value='hello,world'

多个单元格可以使用切片访问单元格区域:

>>>fromopenpyxlimportload_workbook>>>wb2=load_workbook('test.xlsx')0

使用数值格式:

>>>fromopenpyxlimportload_workbook>>>wb2=load_workbook('test.xlsx')1

使用公式:

>>>fromopenpyxlimportload_workbook>>>wb2=load_workbook('test.xlsx')2

合并单元格时,除左上角单元格外,所有单元格都将从工作表中删除:

>>>fromopenpyxlimportload_workbook>>>wb2=load_workbook('test.xlsx')3

行、列

可以单独指定行、列、或者行列的范围:

>>>fromopenpyxlimportload_workbook>>>wb2=load_workbook('test.xlsx')4

可以使用Worksheet.iter_rows方法遍历行:

>>>fromopenpyxlimportload_workbook>>>wb2=load_workbook('test.xlsx')5

同样的Worksheet.iter_cols方法将遍历列:

>>>fromopenpyxlimportload_workbook>>>wb2=load_workbook('test.xlsx')6

遍历文件的所有行或列,可以使用Worksheet.rows属性:

>>>ws=wb.active>>>ws['C9']='helloworld'>>>tuple(ws.rows)((<CellSheet.A1>,<CellSheet.B1>,<CellSheet.C1>),(<CellSheet.A2>,<CellSheet.B2>,<CellSheet.C2>),(<CellSheet.A3>,<CellSheet.B3>,<CellSheet.C3>),(<CellSheet.A4>,<CellSheet.B4>,<CellSheet.C4>),(<CellSheet.A5>,<CellSheet.B5>,<CellSheet.C5>),(<CellSheet.A6>,<CellSheet.B6>,<CellSheet.C6>),(<CellSheet.A7>,<CellSheet.B7>,<CellSheet.C7>),(<CellSheet.A8>,<CellSheet.B8>,<CellSheet.C8>),(<CellSheet.A9>,<CellSheet.B9>,<CellSheet.C9>))

或Worksheet.columns属性:

>>>fromopenpyxlimportload_workbook>>>wb2=load_workbook('test.xlsx')8

使用Worksheet.append或者迭代使用Worksheet.cell新增一行数据:

>>>fromopenpyxlimportload_workbook>>>wb2=load_workbook('test.xlsx')9

插入操作比较麻烦。可以使用Worksheet.insert_rows插入一行或几行:

wb=load_workbook(filename='large_file.xlsx',read_only=True)wb=Workbook(write_only=True)0

Worksheet.insert_cols操作类似。Worksheet.delete_rows和Worksheet.delete_cols用来批量删除行和列。

只读取值

使用Worksheet.values属性遍历工作表中的所有行,但只返回单元格值:

wb=load_workbook(filename='large_file.xlsx',read_only=True)wb=Workbook(write_only=True)1

Worksheet.iter_rows和Worksheet.iter_cols可以设置values_only参数来仅返回单元格的值:

wb=load_workbook(filename='large_file.xlsx',read_only=True)wb=Workbook(write_only=True)2


发表评论:

最近发表
网站分类
标签列表