python操作excel的⽅法摘要:
Openpyxl是⼀个常⽤的python库,⽤于对Excel的常⽤格式及其模板进⾏数据读写等操作。简介与安装openpyxl库
Openpyxl is a Python library for reading and writing Excel 2010 xlsx/xlsm/xltx/xltm files.
安装
pip install openpyxl
pillow:在⽂件中需要使⽤images (jpeg, png, bmp,...)时,需要安装pillow库。
注意:写操作时请关闭需要操作的excel⽂件,否则写不成功
加载xlsx操作内容
加载外部excel的xlsx步骤:
加载xlsx⽂件,获得该⽂件的句柄,为workbook
from openpyxl import load_workbook
wb2 = load_workbook('test.xlsx')
_sheet_names()
# ['Sheet2', 'New Title', 'Sheet1']
在内存中新建workbook
创建 workbook
开始使⽤openpyxl,没有必要在⽂件系统上创建⼀个⽂件。
只需要导⼊Workbook类并开始使⽤它。可以把wordbook想象成⼀个excel⽂件。
from openpyxl import Workbook
wb = Workbook()
workbook创建后⾄少⾄少要创建⼀个worksheet。使⽤ openpyxl.workbook.Workbook.active()
ws = wb.active
该⽅法使⽤了_active_sheet_index属性, 默认会设置0
创建worksheet
使⽤ openpyxl.ate_sheet() 创建新的worksheet
ws1 = wb.create_sheet("new_sheet_1") # 新建sheet,插⼊到最后(默认)
ws2 = wb.create_sheet("new_sheet_2", 0) # 插⼊到最开始的位置
指定worksheet的名称
不指定sheet名称时,按照sheet,sheet1,sheet2⾃动增长
ws3 = wb.create_sheet()
⾃定义worksheet名称,通过title属性指定名称,设置了sheet的名称
ws3.title = "new_sheet_3"
输出wb现在所有的sheetname查看
通过openpyxl.workbook.Workbook.sheetnames() 输出wb现在所有的sheetname
_sheet_names()
print(wb.sheetnames)
循环
for sheet in wb:
print(sheet.title)
指定worksheet tab按钮的颜⾊
新建的sheet tab颜⾊为⽩⾊,可以另外指定sheet tab按钮的颜⾊
ws3.sheet_properties.tabColor = "1072BA"
激活某个worksheet
通过worksheet名称激活某个sheet使⽤
名称看成workbook中的⼀个key
ws3 = wb["new_sheet_3"]
通过 _active_sheet_index 激活某个sheet使⽤
wb._active_sheet_index = 1 # 获取第⼆个sheet
创建worksheet副本
使⽤ openpyxl.py_worksheet() 创建worksheet副本source = wb.active
target = wb.copy_worksheet(source)
只能复制cell和style。不能复制⼯作表之间的⼯作簿。
操作单元格
当worksheet在内存中被创建时,是没有包含cells的,cells是在⾸次访问时创建单元格可以看作是worksheet的key,通过key去访问单元格中的数据
c = ws['A3'] # 访问单元格,不存在则会⾃动创建⼀个
rows函数的使用方法及实例print c.value
ws['A4'] = 'a4 value' # 指定单元格的值
print ws['A4'].value
d = ws.cell(row=4, column=2, value='通过cell指定') # 通过row column数字指定
print d.value
循环在内存中创建cells
不⽤指定其值也可以在内存中创建
for i in range(1, 10):
for j in range(1, 10):
通过切⽚Ranges指定许多cells
cell_range = ws['A1':'C2']
也可以Ranges rows 或者columns
print ws['C']
print ws['C:D']
print ws[10]
print ws[5:10]
也可以使⽤iter_rows() 指定⾏->⾏,截⽌列
for row in ws.iter_rows(min_row=1, max_col=3, max_row=2):
for c in row:
print(c)
iter_cols() 指定列->列,截⽌⾏
for row in ws.iter_rows(min_row=1, max_col=3, max_row=2):
for c in row:
print(c)
遍历所有⽂件的⾏或列
ws['C9'] = 'hello world'
ws) # 转化成tuple⽅便for in操作
lumns)
保存⽂件
wb = Workbook()
wb.save("assets/sample.xlsx")
此操作将覆盖现有的⽂件没有警告。
所有的操作都需要保存到excel才能看见
保存为模板
指定属性 as_template=True ,就可以将⽂档保存为模板.xltx
wb = load_workbook('document.xlsx')
wb.save('document_template.xltx')
或者将该属性设置为False(默认),另存为⼀个⽂档:
wb = load_workbook('document_template.xltx')
wb.save('document.xlsx', as_template=False)
使⽤公式
wb = load\_workbook\('assets/sample.xlsx'\)
ws = wb.active
ws\["A5"\] = "=SUM\(2, 1\)"
wb.save\("assets/sample.xlsx"\)
总结
以上所述是⼩编给⼤家介绍的python操作excel的⽅法,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。在此也⾮常感谢⼤家对⽹站的⽀持!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论