首页
社区
课程
招聘
[原创]使用 Python 读写 Excel 文件(三)
发表于: 2018-1-30 14:51 4374

[原创]使用 Python 读写 Excel 文件(三)

2018-1-30 14:51
4374


在 Excel 中要修改行高和列宽,只需要通过鼠标的拖拽操作就可以实现。

使用 openpyxl,同样可以通过修改工作表的row_dimensions和column_dimensions来实现同样的操作。

在row_dimentions中,使用具体的数字来表示将要修改第几行的高度,比如row_dimentions[2].height = 100是将第 1 行的高度修改为 100;

在column_dimentions中,则要使用字母来表示对应的列号,比如column_dimentions['C'].width = 50,是将第 C 列的宽度修改为 50。

注意,这个高度和宽度的单位是不一样的,所以你会发现这 “100” 的尺度竟然比 “50” 还大:







因为数据比较多,所以当我们查看中间某个数据的时候,就很难直观的看出这是个啥?



  1. 个性化工作表标签栏
  2. 调整行高和列宽
  3. 合并和拆分单元格
  4. 冻结窗口

开发思路

有时候我们可能需要区分不同的工作表,那么可以通过修改标签栏的颜色来实现:

>>> import openpyxl
>>> # 创建工作簿
>>> wb = openpyxl.Workbook()
>>> # 创建工作表
>>> ws1 = wb.create_sheet(title = "zy1")
>>> ws2 = wb.create_sheet(title = "zy2")
>>> ws3 = wb.create_sheet(title = "zy3")
>>> # 个性化工作表
>>> ws1.sheet_properties.tabColor = "FF0000"
>>> ws2.sheet_properties.tabColor = "00FF00"
>>> ws3.sheet_properties.tabColor = "0000FF"
>>> # 保存
>>> wb.save(r"C:\Users\Administrator\Demo.xlsx")

程序实现效果如下:
>>> import openpyxl
>>> # 创建工作簿
>>> wb = openpyxl.Workbook()
>>> # 创建工作表
>>> ws1 = wb.create_sheet(title = "zy1")
>>> ws2 = wb.create_sheet(title = "zy2")
>>> ws3 = wb.create_sheet(title = "zy3")
>>> # 个性化工作表
>>> ws1.sheet_properties.tabColor = "FF0000"
>>> ws2.sheet_properties.tabColor = "00FF00"
>>> ws3.sheet_properties.tabColor = "0000FF"
>>> # 保存
>>> wb.save(r"C:\Users\Administrator\Demo.xlsx")




思路二:调整行高和列宽

在 Excel 中要修改行高和列宽,只需要通过鼠标的拖拽操作就可以实现。

使用 openpyxl,同样可以通过修改工作表的row_dimensions和column_dimensions来实现同样的操作。

在row_dimentions中,使用具体的数字来表示将要修改第几行的高度,比如row_dimentions[2].height = 100是将第 1 行的高度修改为 100;

在column_dimentions中,则要使用字母来表示对应的列号,比如column_dimentions['C'].width = 50,是将第 C 列的宽度修改为 50。

注意,这个高度和宽度的单位是不一样的,所以你会发现这 “100” 的尺度竟然比 “50” 还大:




思路三:合并和拆分单元格


利用工作表的merge_cells()和unmerge_cells()可以快速地合并和拆分指定区域的单元格。

# 合并单元格
>>> ws2.merge_cells("A1:C3")
>>> # 给合并后的单元格赋值
>>> ws2['A1']='I love China!'
>>> wb.save(r"C:\Users\Administrator\Demo.xlsx")

合并后效果如下:



>>> # 拆分单元格
>>> ws1.unmerge_cells('A1:C2')
>>> wb.save(r"C:\Users\Administrator\Demo.xlsx")

注意:当初是怎么合并的,就应该怎么拆分,也就是说拆分的范围必须跟当初的合并保持一致。


思路四:冻结窗口

有时候我们的工作表非常庞大,比如我们拿到一个全国人口普查数据的 Excel 表格 (附件)



因为数据比较多,所以当我们查看中间某个数据的时候,就很难直观的看出这是个啥?




这时候,冻结窗口的功能就显得非常的牛逼

利用工作表的merge_cells()和unmerge_cells()可以快速地合并和拆分指定区域的单元格。

# 合并单元格
>>> ws2.merge_cells("A1:C3")
>>> # 给合并后的单元格赋值
>>> ws2['A1']='I love China!'
>>> wb.save(r"C:\Users\Administrator\Demo.xlsx")

合并后效果如下:
# 合并单元格
>>> ws2.merge_cells("A1:C3")
>>> # 给合并后的单元格赋值
>>> ws2['A1']='I love China!'
>>> wb.save(r"C:\Users\Administrator\Demo.xlsx")


[培训]科锐逆向工程师培训第53期2025年7月8日开班!

上传的附件:
收藏
免费 7
支持
分享
最新回复 (1)
雪    币: 606
活跃值: (50)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
这一波有点意思 
2018-1-30 20:50
0
游客
登录 | 注册 方可回帖
返回