通过xlwings处理excel文档,脚本即可办公。记录一下常用的处理代码。
app相关:如果用同一个app打开多个表格文件,可以通过app.kill()同时关闭所有excel文档,但是要注意保存。
读取表格的顺序:
excel_app = xw.App(add_book=False)
attendance_object = excel_app.books.open(file_name)
sheet = attendance_object.sheets[sheet_name]
常用操作
sheet.api.Rows(2).Delete() # 删除第二行
sheet["F:F"].delete() # 删除F列,可连续删除
rows = sheet.used_range.last_cell.row # 读取表格最大行数
sheet.range("B" + str(i)).value =0 # 修改单元格的值,输入DataFrame区域修改
sheet.api.Rows(i + 1).Insert() # 在某行下插入新一行
sheet.range("A" + str(i - 2) + ":A" + str(i)).api.Merge() # 合并单元格
sheet.range("A2:G" + str(rows)).unmerge() # 解除合并单元格
sheet.range("A1:o1").api.Borders(8).LineStyle = 1 # 设置单元格顶部框
sheet.range("A1:o1").api.Borders(9).LineStyle = 1 # 设置单元格底部边框
sheet.range("A1:o1").api.Borders(7).LineStyle = 1 # 设置单元格左边框
sheet.range("A1:o1").api.Borders(10).LineStyle = 1 # 设置单元格右边框
sheet.range("A1").api.HorizontalAlignment = -4108 # 单元格内容水平居中
sheet.range("A1:O" + str(rows)).api.font.name = "新宋体" # 设置单元格字体
sheet.range("A1:O" + str(rows)).api.Font.Bold = True # 单元格字体加粗
sheet.range("A1:O" + str(rows)).api.Font.Bold = False # 单元格字体取消加粗
sheet.range("A3", (rows, "G")).api.Sort(Key1=sum_sheet.range("E3").api,Order1=2, Orientation=1) # 使表格第3行后列排序,按照E列的值排序
sheet.range(i).color = (255, 204, 153) # 修改单元格填充颜色