pandas导出excel根据列字段长度设置自适应列宽度
时间: 2023-07-12 16:21:23 浏览: 144
可以使用 `pandas.ExcelWriter` 对象和 `xlsxwriter` 库来根据列字段的最大长度自适应设置列宽度。首先,创建一个 `ExcelWriter` 对象并将 DataFrame 导出到该对象中。然后,遍历 DataFrame 的每一列,计算该列字段的最大宽度,并将其设置为该列的宽度。示例代码如下:
```python
import pandas as pd
import xlsxwriter
# 创建 DataFrame
df = pd.DataFrame({'Column1': ['foo', 'bar'], 'Column2': [1, 2]})
# 创建 ExcelWriter 对象并导出 DataFrame
writer = pd.ExcelWriter('output.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1', index=False)
# 获取 Sheet1 工作表
worksheet = writer.sheets['Sheet1']
# 遍历 DataFrame 的每一列,计算该列字段的最大宽度,并设置为该列的宽度
for i, col in enumerate(df.columns):
# 计算该列字段的最大宽度
max_width = max([df[col].astype(str).map(len).max(), len(col)])
# 设置该列的宽度
worksheet.set_column(i, i, max_width)
# 关闭 ExcelWriter 对象
writer.save()
```
在上面的示例代码中,我们首先创建了一个 DataFrame,然后使用 `pandas.ExcelWriter` 对象将其导出到名为 `Sheet1` 的工作表中。接下来,我们获取了 `Sheet1` 工作表的引用,并使用循环遍历了 DataFrame 的每一列。对于每一列,我们计算了该列字段的最大宽度,并将其设置为该列的宽度。最后,我们关闭了 `ExcelWriter` 对象并将结果保存到名为 `output.xlsx` 的文件中。