手机

密码

安全问题

注册 忘记密码?

详情请戳:https://www.udongman.cn/index.php?m=product&c=csp ​

有效期:2022/03/03 - 2022/08/30
修约计算、自适应列宽、填写模板
来源: | 作者:wUw | 发布时间: 1096天前 | 2894 次浏览 | 分享到:

使用的是docxtpl,既然是填写模板,那么就需要一个word的模板,需要渲染的部分使用双花括号括起来,例如代码中“number”这个值需要替换成给定的值,那么模板中相对应的位置应该是写作“{{number}}“。从第66行开始,渲染后的文件需要删除多余的空行,因此采取python-docx进行删除操作。

2.3openpyxl自适应列宽:

book_b = openpyxl.load_workbook(r"D:Usersxxxx.xlsx")  # 使用openpyxl读取Excel ws = book_b['2022.11.30_11.27.31']  # 要操作的sheet名 max_rows = ws.max_row  # 获取最大行 max_columns = ws.max_column  # 获取最大列 borders = Border(left=Side(style='thin'), bottom=Side(style='thin'), right=Side(style='thin'), top=Side(style='thin'))  # 设置边框,thin为细边框  for c in range(1, max_rows + 1):  # 遍历从1开始至最大行数     for x in range(1, max_columns + 1):  # 遍历从1开始至最大列数         ws.cell(c, x).border = borders  # 为每一个行的所有列设置边框 # 推导,因openpyxl下标以1开始,因此[取最大值(计算字节数(转化为字符(c,x组成cell的位置的值)使用gbk编码)) x从第一行开始) c从第一列开始] = 最大列宽度 max_col = [max(len(str(ws.cell(row=x, column=c).value).encode('gbk')) for x in range(1, max_rows + 1)) for c in range(1, max_columns + 1)]  # 设置列宽 for r in range(1, ws.max_column + 1):     letter_s = get_column_letter(r)  # 将数字转化为列名     ws.column_dimensions[letter_s].width = max_col[r - 1] + 2  # 设置列宽,加两个字节留出一点富余量 book_b.save(r"D:Usersxxxx.xlsx")


  • 标题
  • 内容
  • 验证码
提交
标题内容提交时间
没有记录!