openpyxl函数库,python3 openpyxl

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: