在Excel中调整单元格宽度

我正在使用xlsxwriter写入Excel工作表。 我面临的问题是:当文本多于单元格大小时,它就隐藏起来了。

import xlsxwriter workbook = xlsxwriter.Workbook("file.xlsx") worksheet1 = workbook.add_worksheet() worksheet1.write(1, 1,"long text hidden test-1" ) worksheet1.write(2, 1,"long text hidden test-2") worksheet1.write(3, 1,"short-1") worksheet1.write(4, 1,"short-2") worksheet1.write(1, 2,"Hello world" ) worksheet1.write(2, 2,"Hello world") worksheet1.write(3, 2,"Hello world") worksheet1.write(4, 2,"Hello world") workbook.close() 

我正在得到什么

在这里输入图像说明

我期待与调整宽度

在这里输入图像说明

你可以使用set_column如下:

 worksheet1.set_column(1, 1, 25) 

这被定义如下:

 set_column(first_col, last_col, width, cell_format, options) 

如果你想自动自动win32com所有的列,那么你将需要使用win32com接口,如下所示:

 import win32com.client as win32 excel = win32.gencache.EnsureDispatch('Excel.Application') wb = excel.Workbooks.Open(r'file.xlsx') ws = wb.Worksheets("Sheet1") ws.Columns.AutoFit() wb.Save() excel.Application.Quit() 

使用当前的xlsxwriter代码closures文件后,可以轻松完成此操作。 请注意,您可能需要提供文件的完整path。

不幸的是,xlsxwriter不提供autofit选项。

但是,您可以跟踪每个列的最大条目,然后使用set column命令设置列宽。

 set_column(first_col, last_col, width, cell_format, options) 

例如,你应该把B列的宽度设置为最大string的长度。

 width= len("long text hidden test-1") worksheet1.set_column(1, 1, width)