Rav*_*dra 16 python excel xlsxwriter
我正在使用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()
Run Code Online (Sandbox Code Playgroud)
我得到了什么
调整宽度我期待什么
Mar*_*ans 31
您可以使用set_column如下:
worksheet1.set_column(1, 1, 25)
Run Code Online (Sandbox Code Playgroud)
这定义如下:
set_column(first_col, last_col, width, cell_format, options)
Run Code Online (Sandbox Code Playgroud)
如果要自动自动调整所有列,则需要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()
Run Code Online (Sandbox Code Playgroud)
使用当前的xlsxwriter代码关闭文件后,可以轻松完成此操作.请注意,您可能需要提供文件的完整路径.
不幸的是,xlsxwriter不提供自动调整选项.
但是,您可以跟踪每列的最大条目,然后使用set column命令在最后设置列宽.
set_column(first_col, last_col, width, cell_format, options)
Run Code Online (Sandbox Code Playgroud)
例如,在您的情况下,您应该将B列的宽度设置为最大字符串的长度.
width= len("long text hidden test-1")
worksheet1.set_column(1, 1, width)
Run Code Online (Sandbox Code Playgroud)