openpyxl函数库,python3 openpyxl
简介openpyxl是第三方库,可以处理xlsx格式的Excel文件。
Openpyxl(读写excel表)专门处理Excel2007及以上版本生成的xlsx文件,xls和xlsx之间转换很容易。注意:如果文本代码为“gb2312”,读取后会显示乱码,请先转换为Unicode。
Openpyxl模块有三类(大写字母):Workbook是workbooks的抽象(workbooks,一个excel文件包含多个工作表。)
工作表是表的抽象(工作表中有多个工作簿,并有表名标识,如“sheet1”和“sheet2”等。)
Cell是细胞(细胞,存储数据对象)的抽象。安装pip安装openpyxl基本操作创建新工作簿工作簿创建至少一个工作表。
通过open pyxl . workbook . workbook . active()获取工作表。
从openpyxl导入load_workbook
wb=load_workbook(。/test . xlsx’)
打印(世界银行)
Ws=wb.active #获取工作表对象。
打印运行结果(ws):
Openpyxl导入工作簿#导入模块
Wb=Workbook(abc.xlsx) #创建一个名为abc的新工作簿
Wb.save(abc.xlsx) #保存工作簿,并完成新工作簿的建立(它将覆盖同名文件而不发出警告)。运行结果:
从openpyxl导入工作簿
#实例化
wb=工作簿()
#激活工作表
Ws=wb.active从openpyxl导入load _ workbook加载现有工作簿。
Wb=load_workbook(文件名。xlsx) # openpyxl第三方库只能在中处理Excel表格。xlsx格式从OpenPyXL导入Load _ workbook中获取当前工作表的表名
wb=load_workbook(。/test . xlsx’)
Ws2=wb.active #激活当前工作表
运行打印结果(ws2.title):
当名为“sheet1”的工作表被激活时,打印的当前工作表的名称为sheet1。
当名为“sheet2”的工作表表单被激活时,当前工作表的打印工作表名称为sheet2。
修改当前工作表名称(ws=wb.active #获取当前活动工作表)[注意]修改后一定要保存工作簿!Wb.save(Excel文件名. xlsx )
从openpyxl导入工作簿,加载_工作簿
wb=load_workbook(。/test . xlsx’)
ws=wb.active
打印(ws.title)
ws.title=MS
Wb.save(。/test.xlsx )运行结果:
创建和删除工作表【注意】修改工作簿后一定要保存!Wb.save(Excel文件名. xlsx )
从openpyxl导入load_workbook
WS1=WB . create _ sheet( my sheet )#插入到末尾(默认)
WS2=wb.create _ sheet (mysheet ,0) #插入到前面
WS3=wb.create _ sheet (mysheet ,-1) #插入倒数第二个
Wb.remove(Mysheet) #删除工作表(方法一)
Del wb(Mysheet) #删除工作表(方法2)指定sheet工作表:可以从openpyxl导入load _ workbook将sheet表的名称作为字典的键进行索引
wb=load_workbook(。/test . xlsx’)
ws=wb[Sheet2]
Print(ws,指定的工作表工作表名称:,ws.title,end=\n\n )
ws1=wb.active
Print(ws1,活动工作表工作表名称:,ws1.title)运行结果:
[注意]三者的区别:
Wb.sheetnames #获取文档的所有工作表名称。
Wb[Sheet1] #获取指定的工作表
Wb.active #获取当前活动的工作表从openpyxl导入load _ workbook获取Excel中现有的所有工作表表名
wb=load_workbook(。/test . xlsx’)
Print(wb.sheetnames) #工作簿中的所有工作表名称(以列表格式返回)
Print(wb.worksheets) #以列表形式返回所有工作表对象的运行结果:
从openpyxl导入load _ workbook修改指定工作表标签的按钮颜色
wb=load_workbook(。/test . xlsx’)
ws=wb.active
ws . sheet _ properties . tab color= 1072 ba #默认为白色。从openpyxl import load _ workbook确定指定的Excel是否以只读方式打开(返回True或false)
wb=load_workbook(。/test . xlsx’)
打印(wb.read_only)运行结果:
复制工作表[注意]
只复制单元格(包括数值、样式、超链接、备注)和部分工作表对象(包括大小、格式、参数),不复制其他属性,如图片、图表等;
工作表不能在两个文档中复制。
当文档处于只读或只写状态时,不能复制工作表。
从openpyxl导入load_workbook
wb=load_workbook(。/test . xlsx’)
获取当前活动的工作表
target=WB . Copy _ worksheet(source)#复制当前活动的工作表表格
运行打印结果(目标):
保存工作簿wb.save(文件名。xlsx’)Excel属性操作从openpyxl导入load _ workbook
wb=load_workbook(。/test . xlsx’)
Print(wb.encoding,end=\n\n) #获取文档的字符集编码。
Print(wb.properties) #获取文档的元数据,如标题、创建者、创建日期和其他运行结果:
获取指定工作表中的最大行数和最大列数。选择单个单元格:从openpyxl import load _ workbook中获取指定位置的单元格对象。
wb=load_workbook(。/test . xlsx’)
打印(世界银行)
Ws=wb.active #获取当前活动的工作表对象(sheet table)
打印(ws)
#选择单个单元格(获取指定位置的单元格对象)
打印(ws[A1])
Print(ws.cell(1,1)) #第一列和第二列,它们是索引下标操作的结果:
openpyxlimportload _ workbook的属性
wb=load_workbook(。/test . xlsx’)
打印(世界银行)
Ws=wb.active #获取当前活动的工作表对象(sheet table)
打印(ws)
Cell=ws[A1] #获取指定位置的单元格对象
#单元格列索引
打印(cell.col_idx)
打印(单元格.列)
#单元格行索引
打印(单元格.行)
#单元格列名
打印(单元格.列_字母)
#单元格的坐标
打印(单元格.坐标)
#单元格编号类型
#默认为
# n:数值
# s:字符串
# d:日期和时间
print(cell.data_type)
#单元格编码格式,默认utf-8
打印(单元格.编码)
#有风格吗?
Print(cell.has_style) #默认样式为Normal,如果是默认样式,则返回False。
#单元格样式
打印(单元格样式)
#单元格样式id
打印(cell.style_id)运行结果:
单元格样式属性
从openpyxlimportload _ workbook获取指定单元格的值。
wb=load_workbook(。/test . xlsx’)
打印(世界银行)
Ws=wb.active #获取当前活动的工作表对象(sheet table)
打印(ws)
Cell=ws[A1] #获取指定位置的单元格对象
打印(单元格)
#获取指定单元格的值
打印(ws[A1]。值)
Print(ws.cell(1,1))。值)运行结果:
选择单元格
从openpyxl导入load _ workbook为单元格赋值
wb=load_workbook(。/test . xlsx’)
打印(世界银行)
Ws=wb.active #获取当前活动的工作表对象(sheet table)
打印(ws)
Cell=ws[A1] #获取指定位置的单元格对象
打印(单元格)
Ws[A1]=第一行第一列中修改的单元格值
Ws.cell(1,2)。value=第一行第二列中修改的单元格值
Wb.save(文件名=。/test.xlsx )运行结果:
[注意]
对Excel文件的任何修改都需要保存后才能生效。
单元格赋值使用cell()函数语法时,只能赋值单元格对象的value属性,要和ws[A1]= value 区分开来。Ws.cell(2,2)=20 #将报告一个错误
从openpyxl import load _ workbook在指定工作表的最后一个空白行中添加新行数据。
wb=load_workbook(。/test . xlsx’)
打印(世界银行)
Ws=wb.active #获取当前活动的工作表对象(工作表)
打印(ws)
Cell=ws[A1] #获取指定位置的单元格对象
打印(单元格)
ws.append([1,2,3])
Wb.save(文件名=。/test.xlsx )运行结果:
遍历单元格ws.values返回生成器,生成器以一行数据为元组单元,由值组成。
由ws.values得到的内容从“A1”到“最大行最大列”。
从openpyxl导入load_workbook
wb=load_workbook(。/test.xlsx )
print(wb,end=\n\n )
Ws=wb.active #获取当前活动的工作表对象(sheet table)
print(ws,end=\n\n )
Cell=ws[A1] #获取指定位置的单元格对象
print(单元格,end=\n\n )
Print(ws.values,end=\n\n) # generator对象,该对象以一行单元格作为元组单元组成的生成器-"
Print (list (ws.values),end= \ n \ n) #将生成器对象转换为列表数据,列表包含生成器中的所有数据。
对于ws.values中的I:
打印(I)运行结果:
或者:
从openpyxl导入load_workbook
wb=load_workbook( ./测试。xlsx’)
print(wb,end=\n\n )
ws=wb.active #获取当前活跃的工作表对象(表格表)
print(ws,end=\n\n )
cell=ws[A1] #获取指定位置的单元格对象
打印(单元格,end=\n\n )
对于ws.iter_rows中的I(最小列=1,最大列=3,最小行=1,最大行=10):
打印(一)
print(ws.iter_rows()) #将每一个单元格对象(按行数据中的单元格)作为一个元组单元- 》组成的生成器
print(ws.rows,end=\n\n) #将每一个单元格对象(按行数据中的单元格)作为一个元组单元- 》组成的生成器
print(list(ws.rows),end=\n\n) #列表中存放的是生成器中的每一个单元格对象
对于ws.rows中的我:#遍历以单元格对象为单位的元组单元组成的生成器
对于我中的j:#遍历单元格对象中的属性
打印(j,j。值)运行结果:
或者:
从安装导入加载_工作簿
wb=load_workbook( ./测试。xlsx’)
print(wb,end=\n\n )
ws=wb.active #获取当前活跃的工作表对象(表格表)
print(ws,end=\n\n )
cell=ws[A1] #获取指定位置的单元格对象
打印(单元格,end=\n\n )
print(ws.columns,end=\n\n) #将每一个单元格对象(按照列数据)作为一个元组单元- 》组成的生成器
print(ws.iter_cols(),end=\n\n) #将每一个单元格对象(按照列数据)作为一个元组单元- 》组成的生成器
print(list(ws.columns),end=\n\n )
对于ws.columns中的我:
打印(一)运行结果:
指定表表中删除行和删除列【注意】删除行或者列后,后面的行或者列会自动往前填充,也就是说,删除第一列,原来的第二列就会变成第一列。
从安装导入加载_工作簿
wb=load_workbook( ./测试。xlsx’)
打印(世界银行)
ws=wb.active #获取当前活跃的工作表对象(表格表)
print(ws,end=\n\n )
print(ws.cell(1,2)).值)
ws.delete_cols(1) #删除第一列,以此类推、n代表删除第n列
wb.save(文件名=。/测试。xlsx’)
print(ws.cell(1,2)).值)运行结果:
从安装导入加载_工作簿
wb=load_workbook( ./测试。xlsx’)
打印(世界银行)
ws=wb.active #获取当前活跃的工作表对象(表格表)
print(ws,end=\n\n )
print(ws.cell(1,1)).值)
ws.delete_rows(1) #删除第一行,以此类推、n代表删除第n行
wb.save(文件名=。/测试。xlsx’)
print(ws.cell(1,1)).值)运行结果:
转熊猫
合并单元格
样式设置颜色颜色(索引=0) #根据索引进行填充
#
Color(rgb=00000000) #根据rgb值进行填充
#索引
COLOR_INDEX=(
00000000 , 00FFFFFF , 00FF0000 , 0000FF00 ,#0-4
00FFFF00 , 00FF00FF , 0000FFFF , 000000 , 00FFFFFF ,#5-9
00FF000 , 0000FF00 , 000000FF , 00FFFF00 , 00FF00FF ,#10-14
0000FFFF , 00800000 , 00008000 , 0000080 , 00808000 ,#15-19
00800080 , 00008080 , 00C0C0C0 , 00808080 , 009999FF ,#20-24
00993366 , 00FFFFCC , 00CCFFFF , 00660066 , 00FF8080 ,#25-29
000066CC , 00CCCCFF , 0000080 , 00FF00FF , 00FFFF00 ,#30-34
0000FFFF , 00800080 , 00800000 , 00008080 , 000000FF ,#35-39
0000CCFF , 00CCFFFF , 00CCFFCC , 00FFFF99 , 0099CCFF ,#40-44
00FF99CC , 00CC99FF , 00FFCC99 , 003366FF , 0033CCCC ,#45-49
0099CC00 , 00FFCC00 , 00FF9900 , 00FF6600 , 00666699 ,#50-54
00969696, 00003366, 00339966, 00003300, 00333300, #55-59
00993300, 00993366, 00333399, 00333333, #60-63
)
黑色=颜色索引[0]
白色=COLOR_INDEX[1]
红色=颜色索引[2]
DARKRED=COLOR_INDEX[8]
蓝色=颜色索引[4]
深蓝=COLOR_INDEX[12]
绿色=颜色索引[3]
暗绿色=COLOR_INDEX[9]
黄色=颜色索引[5]
暗黄色=COLOR_INDEX[19]字体ws.cell(5,3).值=哈哈哈
ws.cell(5,3).font=Font(name=仿宋,size=12,color=Color(index=0),b=True,i=True)
#尺码尺码字体大小
# b粗体是否粗体
#我斜体是否斜体
#名称系列字体样式边框边Side(,color=Color(index=0))
#风格可选项
style=(虚线点,虚线点,虚线点,
double , hair , mediumDashDot , mediumDashDotDot ,
中间虚线,倾斜点,粗,细)
# 中等中粗
# 瘦细
# 厚粗
# 虚线虚线
# 带点点线填充PatternFill(patternType=solid ,fgColor=Color(),bgColor=Color())
# fgColor前景色
#背景颜色后景色
# 参数可选项
patternType={darkDown , darkUp , lightDown , darkGrid , lightVertical ,
实心,灰色0625 ,深色水平,浅色网格,浅色网格,
中灰色,灰色125 ,深灰色,浅灰色,亮色,
浅色水平,深色格子,深色垂直 }
ws.cell(3,3).fill=PatternFill()对齐对齐(水平=填充,垂直=居中)
# 参数可选项
horizontal={fill , distributed , centerContinuous , right ,
对齐,居中,左,常规 }
vertical={distributed , justify , center , bottom , top}
ws.cell(3,3).对齐=对齐()数字显示样式
链接
行高列宽
去期待陌生,去拥抱惊喜。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。