python自动化办公知识点积累-2

本文介绍如何使用Python库xlutils将xls格式的Excel模板复制到新工作簿,并设置自定义样式,包括字体、边框和对齐方式。作者演示了如何解决formatting_info不兼容xlsx的问题,并展示了如何为写入的数据设置特定的格式。
摘要由CSDN通过智能技术生成

1. python复制excel格式到新表,并写入数据:

import xlutils  # xlutils 是将一个excel模板的格式复制到一个新建的工作薄中
import xlrd
import xlwt
from xlutils.copy import copy

tem_excel = xlrd.open_workbook('E:\练习excel\日统计.xlsx',formatting_info=True)  #打开工作薄,formatting_info格式信息设为True
tem_sheet = tem_excel.sheet_by_index(0)

new_excel = copy(tem_excel)
new_sheet = new_excel.get_sheet(0)
new_sheet.write(2,1,12)
new_sheet.write(3,1,28)
new_sheet.write(4,1,36)
new_sheet.write(5,1,55)
new_excel.save('E:\\练习excel\\填写.xls')

注意:报错NotImplementedError: formatting_info=True not yet implemented;在读取xlsx格式的Excel时,传入formatting_info会直接抛出异常,而读取xls类型的文件时不存在此问题。抛异常的原因是formatting_info还没有对新版本的xlsx的格式完成兼容。

解决办法:修改为xlsx为xls(推荐)

 

2.完整代码:

import xlutils  # xlutils 是将一个excel模板的格式复制到一个新建的工作薄中
import xlrd
import xlwt
from xlutils.copy import copy

tem_excel = xlrd.open_workbook('E:/练习excel/日统计.xls', formatting_info=True)  # 打开工作薄,formatting_info格式信息设为True
tem_sheet = tem_excel.sheet_by_index(0)

new_excel = copy(tem_excel)
new_sheet = new_excel.get_sheet(0)

# 这样直接写入会发现写入数据还是使用excel默认格式,需要人为设置格式
#new_sheet.write(2, 1, 12)
#new_sheet.write(3, 1, 28)
#new_sheet.write(4, 1, 36)
#new_sheet.write(5, 1, 55)
#new_excel.save('E:/练习excel/填写.xls')

#新建一个样式
style = xlwt.XFStyle() # 初始化一个空白样式

#设置字体
font = xlwt.Font()  # 初始化一个字体
font.name = '宋体'  # 字体名称
font.bold = True    # 字体加粗
font.italic = True  # 字体倾斜  没有italic属性的字体可以用oblique来进行倾斜设置
font.height = 220   #字体的大小:需要将excel中的字体大小11*20
style.font = font   #将设置的字体加入到样式之中

#设置边框
borders = xlwt.Borders() # 初始化边框
borders.top = xlwt.Borders.THIN    #设置上、下、左、右四条边框,用细线设置
borders.bottom = xlwt.Borders.THIN
borders.left = xlwt.Borders.THIN
borders.right = xlwt.Borders.THIN
style.borders = borders    #将边框添加到样式中

#设置对齐
alignment = xlwt.Alignment() #初始化对齐
alignment.horz = xlwt.Alignment.HORZ_CENTER  # 水平方向对齐,HORZ_CENTER水平居中
alignment.vert = xlwt.Alignment.VERT_CENTER  # 垂直方向对齐,VERT_CENTER垂直居中
style.alignment = alignment  #将对齐方式添加到样式中

new_sheet.write(2,1,12,style)
new_sheet.write(3,1,22,style)
new_sheet.write(4,1,38,style)
new_sheet.write(5,1,55,style)

new_excel.save('E:/练习excel/填写.xls')

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值