Excel文件处理实战-Python编程进阶

openpyxl库

openpyxl库特点

  • 用于读取写入Excel2010 xlsx、xlsm、xltx、xltm文件的Python库
  • 使用getter、setter模式。可以随时读取某个单元格的内容,并根据其内容进行相应的修改,openpyxl会帮助记住每个单元格的状态
  • 虽然支持修改已有文件,但由于其所支持的功能有限,读入文件时会忽略掉它所不支持的内容,再写入时,这些内容就丢失了

openpyxl库缺点

  • 不支持07版本之前的xls格式
  • 不支持Excel中的公式

openpyxl库常用操作

  • 用openpyxl库打开Excel文档
wb=openpyxl.load_workbook()
  • 从工作薄中取得工作表
get_sheet_names
  • 从表中取得行和列

可以将worksheet对象切片,取得Excel表格中一行、一列或一个矩形区域中的所有cell对象,然后可以循环遍历这个切片中的所有单元格

  • 新建工作簿:新建工作簿不需要在系统中创建新文件,在内存中操作即可
from openpyxl import Workbook
#工作簿实例化
wb=Workbook()
  • 从工作簿激活工作表
ws=wb.active
  • 也可用create_sheet方法创建工作表
#默认在最后添加工作表
ws1=wb.create_sheet()

#在指定位置添加工作表,位置0,即第一个
ws2=wb.create_sheet(0)
  • 也可以通过工作表名称获取工作表,以下两种方式效果相同
ws3=wb["New Title]
ws4=wb.get_sheet_by_name("New Title")
  • 通过get_sheet_names()获取工作簿所有工作表的名称,返回值为list类型
print(wb.get_sheet_names())
输出
['Sheet1','New Title','Sheet2']
  • 获取单元格
c=ws['A4'] #利用坐标获取单元格,若单元格不存在,则被创建
ws['A4']=4 #对单元格的值直接赋值

#也可以通过以下两种方式获取单元格,效果相同
c=ws.cell('A4')

#指定行和列获取,从1开始,不从0开始
d=ws.cell(row=4,column=1)
  • 利用切片方式获取指定区域的单元格
cell_range=ws['A1':'C2']
  • 获取单元格后,写数据
c=ws.cell('A4')
c.value='hello,world'
  • 对实例化的工作簿调用openpyxl.workbook.Workbook.save()进行保存
wb.save('sample.xlsx')

猜你喜欢

转载自blog.csdn.net/weixin_43717681/article/details/106026345