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像素。