python xlsxwriter在使用write_行时更改所有单元格宽度
使用python xlsxwriter在使用write_行时更改所有单元格宽度,python,excel,xlsxwriter,Python,Excel,Xlsxwriter,使用write_row()时,如何为整个“工作表”或每列定义列宽 例如,我有: workbook = xlsxwriter.Workbook(loc_path + 'monbatch_test1.xlsx') worksheet = workbook.add_worksheet() monbatch = [ [a,b,c,], [a,b,c,], [a,b,c,] ] row, col = 3, 0 for mon in monbatch: work
write_row()
时,如何为整个“工作表”或每列定义列宽
例如,我有:
workbook = xlsxwriter.Workbook(loc_path + 'monbatch_test1.xlsx')
worksheet = workbook.add_worksheet()
monbatch = [
[a,b,c,],
[a,b,c,],
[a,b,c,]
]
row, col = 3, 0
for mon in monbatch:
worksheet.write_row(row, col, mon, rows_format)
row += 1
workbook.close()
我想更改所有列(a、b、c)的列宽。有一个接受宽度的相关方法:
设置列(第一列、最后一列、宽度、单元格格式、选项)
设置
一列或多列单元格的属性
以下是如何应用它:
worksheet.set_column(0, 2, 100)
解决办法是
def compute_rows(text, width):
if len(text) < width:
return 1
phrases = text.replace('\r', '').split('\n')
rows = 0
for phrase in phrases:
if len(phrase) < width:
rows = rows + 1
else:
words = phrase.split(' ')
temp = ''
for idx, word in enumerate(words):
temp = temp + word + ' '
# check if column width exceeded
if len(temp) > width:
rows = rows + 1
temp = '' + word + ' '
# check if it is not the last word
if idx == len(words) - 1 and len(temp) > 0:
rows = rows + 1
return rows
def compute_行(文本、宽度):
如果长度(文本)<宽度:
返回1
短语=文本。替换('\r','')。拆分('\n')
行数=0
对于短语中的短语:
如果len(短语)<宽度:
行=行+1
其他:
单词=短语。拆分(“”)
温度=“”
对于idx,枚举中的单词(单词):
温度=温度+文字+“”
#检查是否超过列宽
如果长度(温度)>宽度:
行=行+1
温度=“”+单词+“”
#检查它是否不是最后一个词
如果idx==len(字)-1和len(温度)>0:
行=行+1
返回行
但您可以在这里看到详细信息:我想添加,该值为每个字体字符宽度1个单位。默认字体为Calibri 11px,相当于每单位8.75像素。