本文将分小模块,单独介绍如何用Python来代替Excel中如下操作:
设置行高列宽
设置边框
填充单元格
增加/删除行列,移动单元格
冻结窗格
提示:每个小模块可以单独运行,作者均在本地可正常实现。
一、设置行高列宽
利用Python来进行Excel的行高和列宽设置操作。
#导入需要的模块
import openpyxl
wb = openpyxl.Workbook()
# 新生成一个工作表,工作表名默认是Sheet
sheet = wb.active
sheet["A1"] = "Tall row"
sheet["B2"] = "Wide column"
# 这里行高单位是磅,列宽单位是字符
sheet.row_dimensions[1].height = 70
sheet.column_dimensions["B"].width=20
wb.save("dimensions1.xlsx")
二、设置边框
根据需求,对需要的区域加上自己想要的边框。
# 导入需要的模块,设置边框会用到Border、Side
import openpyxl
from openpyxl.styles import Border,Side
border = Border(
left=Side(border_style="thin",color="000000"),
right=Side(border_style="thin",color="000000"),
top=Side(border_style="thin",color="000000"),
bottom=Side(border_style="thin",color="000000"))
# 载入已有的文件
wb = openpyxl.load_workbook("dimensions1.xlsx")
ws = wb["Sheet"]
# 对单个单元格进行设置边框
ws["A1"].border = border
# 可以对某个单元格设置边框,也可以对某个区域进行设置边框
#这里对A1:B3区域进行设置边框
for x in range(3):
for y in range(2):
ws.cell(row = x+1,column = y+1).border = border
wb.save("dimensions1.xlsx")
三、填充单元格
用Python来实现Excel中对单元格填充颜色的操作。
import openpyxl
from openpyxl.styles import PatternFill
from openpyxl.styles import GradientFill
# 进行效果设置
# ’00FF00‘表示绿色,"000000"表示黑色,‘FFFFFF"表示白色,"FF0000"表示红色,"0000FF"表示蓝色,"FFFF00"表示黄色
red_fill = PatternFill(fill_type = "solid",fgColor = "FFFF00")
red2green_fill = GradientFill(stop=("FF0000","00FF00"))
wb = openpyxl.load_workbook("dimensions1.xlsx")
ws = wb["Sheet"]
# A1进行纯色填充,B2进行渐近填充
ws["A1"].fill = red_fill
ws["B2"].fill = red2green_fill
wb.save("dimensions1.xlsx")
四、增加删除行列,移动单元格区域
用Python实现Excel中增加或者删除行、列的操作,并对单元格区域进行移动操作
# 导入openpyxl,新生成一个表格,并在A1:C3区域写入数据
import openpyxl
wb = openpyxl.Workbook()
sheet = wb.active
sheet["A1"] = 1
sheet["A2"] = 2
sheet["A3"]=3
sheet["B1"] = 4
sheet["B2"] = 5
sheet["B3"]=6
sheet["C1"] = 7
sheet["C2"] = 8
sheet["C3"] = 9
# 在第2行插入一行,在第2列插入一列
sheet.insert_rows(2)
sheet.insert_cols(2)
# 删除第2行、第2列
sheet.delete_rows(1)
sheet.delete_cols(1)
#将区域「B2:C3」分别左移1列上移1行。注意:移动将覆盖目标区域已有的数据。
sheet.move_range("B2:C3",rows=-1,cols=-1)
wb.save("insert_delete.xlsx")
五、冻结窗格
如果Excel行数较多,下拉的时候为了显示标题行,会需要将前面的行进行冻结。
import openpyxl
# 直接载入上面生成的文件
wb = openpyxl.load_workbook("dimensions1.xlsx")
sheet = wb.active
# 利用Worksheet对象的freeze_panes属性,冻结前两行
# 如果这里设置B3则会冻结B3单元格上面的所有行和左边的列
sheet.freeze_panes ="A3"
wb.save("dimensions1.xlsx")
至此,本文用Python完成了Excel中的设置行高列宽、设置边框 、填充单元格 、增加/删除行列和移动单元格、冻结窗格的操作。
欲知更多操作,且看下回分解。。。