Python利用openpyxl来操作Excel(一)

最近一直在做项目里的自动化的工作,为了是从繁琐重复的劳动中挣脱出来,把精力用在数据分析上。自动化方面python是在好不过了,不过既然要提交报表,
就不免要美观什么的。pandas虽然很强大,但是无法对Excel完全操作,现学vba有点来不及。于是就找到这个openpyxl包,用python来修改Excel,碍于水平
有限,琢磨了两天,踩了不少坑,好在完成了自动化工作(以后起码多出来几个小时,美滋滋)。

在这里写下这两天的笔记和踩得坑,方面新手躲坑,也供自己日后查阅。如有问题,还请见谅并指出,多谢。

from openpyxl import load_workbook
from openpyxl.styles import colors, Font, Fill, NamedStyle
from openpyxl.styles import PatternFill, Border, Side, Alignment

# 加载文件
wb = load_workbook('./5a.xlsx')
  • workbook: 工作簿,一个excel文件包含多个sheet。
  • worksheet:工作表,一个workbook有多个,表名识别,如“sheet1”,“sheet2”等。
  • cell: 单元格,存储数据对象

文章所用表格为:
所用的表格

操作sheet

# 读取sheetname
print('输出文件所有工作表名:\n', wb.sheetnames)
ws = wb['5a']

# 或者不知道名字时
sheet_names = wb.sheetnames
ws2 = wb[sheet_names[0]]    # index为0为第一张表
print(ws is ws2)
输出文件所有工作表名:
 ['5a']
True
# 修改sheetname

ws.title = '5a_'
print('修改sheetname:\n', wb.sheetnames)
修改sheetname:
 ['5a_']
# 创建新的sheet
# 创建的新表必须要赋值给一个对象,不然只有名字但是没有实际的新表

ws4 = wb.create_sheet(index=0, title='newsheet')
# 什么参数都不写的话,默认插入到最后一个位置且名字为sheet,sheet1...按照顺序排列

ws5 = wb.create_sheet()
print('创建新的sheet:\n', wb.sheetnames)
创建新的sheet:
 ['newsheet', '5a_', 'Sheet']
# 删除sheet
wb.remove(ws4)  # 这里只能写worksheet对象,不能写sheetname
print('删除sheet:\n', wb.sheetnames)
删除sheet:
 ['5a_', 'Sheet']
# 修改sheet选项卡背景色,默认为白色,设置为RRGGBB模式
ws.sheet_properties.tabColor = "FFA500"

# 读取有效区域

print('最大列数为:', ws.max_column)
print
  • 12
    点赞
  • 97
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值