资料来源:Python中文社区
所有类型的数据都需要导入擅长?要合并多个Excel?目前,Python有很多用于处理Excel文件的库,openpyxl就是其中一个功能和性能更好的库。接下来,我将向大家介绍各种excel操作。
打开excel文件
创建一个新的EXCEL文件
>;>;>;来自openpyxlNicholasTse工作簿
>;>;>;wb=工作手册
打开现有的excel文件
>;>;>;来自openpyxlNicholasTseload_工作手册
>;>;>;wb2=加载工作簿('test.xlsx')
打开大文件时,根据需要使用只读或只读模式以减少内存消耗。
wb=load_u工作簿(filename='large_file.xlsx',read_only=True)
wb=工作簿(只写=真)
获取并创建工作表
获取当前活动的工作表:
>;>;>;ws=wb。忙碌的
创建新工作表:
>;>;>;ws1=wb。创建uSheet(“Mysheet”)#在末尾插入(默认)
#或
>;>;>;ws2=wb。创建uSheet(“Mysheet”,0)#在第一个位置插入
#或
>;>;>;ws3=wb。创建uSheet(“Mysheet”,-1)#在倒数第二位插入
使用图纸名称获取图纸:
>;>;>;ws3=wb[“新标题”]
获取所有工作表名称:
>;>;>;打印(wb.图纸名称)
['Sheet2'、'NewTitle'、'Sheet1']
使用for循环遍历所有工作表:
>;>;>;对于wb中的工作表:
...打印(表格标题)
保护
保存到网络中的流使用:
>;>;>;来自临时文件NicholasTsenamedtemporaryfile
>;>;>;来自openpyxlNicholasTse工作簿
>;>;>;wb=工作簿
>;>;>;将NamedTemporaryFile作为tmp:
wb。保存(tmp.name)
tmp。寻找(0)
stream=tmp。阅读
保存到文件:
>;>;>;wb=工作簿
>;>;>;wb。保存('balances.xlsx')
将模板另存为:
>;>;>;wb=加载工作簿('document.xlsx')
>;>;>;wb。模板=真
>;>;>;wb。保存('document_template.xltx')
单间牢房
单元格位置直接作为工作表的键读取:
>;>;>;c=ws['A4']
为单元格赋值:
>;>;>;ws['A4']=4
>;>;>;c、value='你好,世界'
多个单元格可以使用磁贴访问一系列单元格:
>;>;>;单元格范围=ws['A1':'C2']
使用数字格式:
>;>;>;#使用Pythondatetime设置日期
>;>;>;ws['A1']=datetime。日期时间(2010年7月21日)
>;>;>;
>;>;>;ws['A1']。数字格式
'yyyymmddh:mm:ss'
使用公式:
>;>;>;#添加一个简单的公式
>;>;>;ws[“A1”]=“总和(1,1)”
合并单元格时,除左上角单元格外的所有单元格都将从工作表中删除:
>;>;>;ws。合并单元格('A2:D2')
>;>;>;ws。未合并单元格('A2:D2')
>;>;>;
>;>;>;#或者相当于
>;>;>;ws。合并单元格(开始行=2,开始列=1,结束行=4,结束列=4)
>;>;>;ws。取消合并单元格(开始行=2,开始列=1,结束行=4,结束列=4)
行和列
可以分别指定行、列或行和列的范围:
>;>;>;colC=ws['C']
>;>;>;col_uurange=ws['C:D']
>;>;>;row10=ws[10]
>;>;>;行范围=ws[5:10]
接触Worksheet。国际热核实验堆rows
方法遍历行:
>;>;>;对于ws中的行。iter_uurows(最小行=1,最大列=3,最大行=2):
...对于行中的单元格:
...打印(单元格)
&书信电报;牢房床单1。A1>;
&书信电报;牢房床单1。B1>;
&书信电报;牢房床单1。C1>;
&书信电报;牢房床单1。A2>;
&书信电报;牢房床单1。B2>;
&书信电报;牢房床单1。C2>;
同样地Worksheet。国际热核实验堆cols
方法将遍历列:
>;>;>;对于ws中的col。itercols(最小行=1,最大列=3,最大行=2):
...对于col中的单元格:
...打印(单元格)
&书信电报;牢房床单1。A1>;
&书信电报;牢房床单1。A2>;
&书信电报;牢房床单1。B1>;
&书信电报;牢房床单1。B2>;
&书信电报;牢房床单1。C1>;
&书信电报;牢房床单1。C2>;
遍历文件的所有行或列,可以使用Worksheet。rows
属性:
>;>;>;ws=wb。忙碌的
>;>;>;ws['C9']='helloworld'
>;>;>;元组(远景:rows)
((<;单元格表A1>;,<;单元格表B1>;,<;单元格表C1>;),
(<;单元格表A2>;、<;单元格表B2>;、<;单元格表C2>;),
(<;单元格表A3>;,<;单元格表B3>;,<;单元格表C3>;),
(<;单元格表A4>;,<;单元格表B4>;,<;单元格表C4>;),
(<;单元格表A5>;、<;单元格表B5>;、<;单元格表C5>;),
(<;单元格表A6>;、<;单元格表B6>;、<;单元格表C6>;),
(<;CellSheet.A7>;、<;CellSheet.B7>;、<;CellSheet.C7>;),
(<;CellSheet.A8>;,<;CellSheet.B8>;,<;CellSheet.C8>;),
(<;CellSheet.A9>;、<;CellSheet.B9>;、<;CellSheet.C9>;)
或Worksheet。柱
属性:
>;>;>;元组(ws.columns)
((<;单元格表A1>;);,
&书信电报;牢房床单。A2>;,
&书信电报;牢房床单。A3>;,
&书信电报;牢房床单。A4>;,
&书信电报;牢房床单。A5>;,
&书信电报;牢房床单。A6>;,
...
&书信电报;牢房床单。B7>;,
&书信电报;牢房床单。B8>;,
&书信电报;牢房床单。B9>;),
(<;单元格表C1>;);,
&书信电报;牢房床单。C2>;,
&书信电报;牢房床单。C3>;,
&书信电报;牢房床单。C4>;,
&书信电报;牢房床单。C5>;,
&书信电报;牢房床单。C6>;,
&书信电报;牢房床单。C7>;,
&书信电报;牢房床单。C8>;,
&书信电报;牢房床单。C9>;))
使用Worksheet。append
或反复使用Worksheet。单间牢房
添加一行新数据:
>;>;>;对于范围(1,40)内的行:
...ws1。append(射程(600))
>;>;>;对于范围(10,20)内的行:
...对于范围(27,54)中的列:
..._=ws3。单元格(column=col,row=row,value=“{0}”。格式(get_column_letter(col)))
插入操作很麻烦。接触Worksheet。插入uurows
插入一行或多行:
>;>;>;来自openpyxl。import收到了一封信
>;>;>;ws。插入rows(7)
>;>;>;row7=ws[7]
>;>;>;对于范围内的col(27,54):
..._=ws3。单元格(column=col,row=7,value=“{0}”。格式(get_column_letter(col)))
Worksheet。插入cols
操作与此类似。Worksheet。删除uurows
和Worksheet。删除uucols
用于批量删除行和列。
只读值
使用Worksheet。价值观
属性遍历工作表中的所有行,但只返回单元格值:
对于ws中的行。价值观:
对于行中的值:
打印(值)
Worksheet。国际热核实验堆rows
和Worksheet。国际热核实验堆cols
可以设定仅限价值观
参数仅返回单元格的值:
>;>;>;对于ws中的行。iter_urows(最小行=1,最大列=3,最大行=2,仅值=true):
...打印(行)
(没有,没有,没有)
(没有,没有,没有)
作者:辛查德,主要研究python图书馆文档翻译,开发代码片段,源代码分析
博客:志虎。com/people/aiApple
微软年初,我们推出了自己的Python教程。我们将用中文提供给您。欢迎您收集并关注。(20集中文版已经完成,1集每日更新,我们会尽快更新未完成部分)
最新评论