问题描述
我有一个python脚本,可以生成带有多张图纸的xlsx文件。对于每张纸,我想调整第一行的列宽(列标题)以自动调整。请帮助我了解如何通过xlsxwriter或openpyxl(如果可能的话,一个代码块遍历整个工作簿并自动调整每张纸的第一行)来完成此操作。
谢谢
解决方法
您不能只更改第一行的列宽,因为整个列的宽度必须相同。
因此,您需要遍历列的每个单元格以找出最长的值,然后将列宽设置为该数字(逐列,逐张)。
您可以在此处使用示例来计算每个单元格的长度:
import openpyxl
def cellLength():
workBook = openpyxl.load_workbook('****.xlsx')
for sheetName in workBook.sheetnames:
sheet = workBook[sheetName]
for columnNum in range(sheet.max_column):
for rowNum in range(sheet.max_row):
cellLength = len(str(sheet.cell(row = rowNum + 1,column = columnNum + 1).value))
然后将列宽设置为最长的单元格长度。
此外,宽度必须小于255。