摘要:
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') print wb2.get_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.workbook.Workbook.create_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
print wb.get_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.workbook.Workbook.copy_worksheet() 创建worksheet副本
source = wb.active target = wb.copy_worksheet(source)
只能复制cell和style。不能复制工作表之间的工作簿。
操作单元格
当worksheet在内存中被创建时,是没有包含cells的,cells是在首次访问时创建
单元格可以看作是worksheet的key,通过key去访问单元格中的数据
c = ws['A3'] # 访问单元格,不存在则会自动创建一个 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): ws.cell(row=i, column=j)
通过切片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' tuple(ws.rows) # 转化成tuple方便for in操作 tuple(ws.columns)
保存文件
wb = Workbook() wb.save("assets/sample.xlsx")
此操作将覆盖现有的文件没有警告。
所有的操作都需要保存到excel才能看见
保存为模板
指定属性 as_template=True ,就可以将文档保存为模板.xltx
wb = load_workbook('document.xlsx') wb.template = True wb.save('document_template.xltx')
或者将该属性设置为False(默认),另存为一个文档:
wb = load_workbook('document_template.xltx') wb.template = False 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的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]