df.style.set_table_styles 'display.max_colwidth', None 输出到EXCEL中 自动调整列宽
时间: 2023-06-13 17:03:56 浏览: 61
您可以使用 pandas 库中的 ExcelWriter 类来将 DataFrame 输出到 Excel 文件中,并使用 openpyxl 库中的列自适应函数进行自动调整列宽。
以下是一个例子:
```python
import pandas as pd
from openpyxl.utils import column_width_from_dimensions
from openpyxl.utils.cell import get_column_letter
# 创建一个 DataFrame
df = pd.DataFrame({'Column 1': ['This is a long text that should wrap', 'Short text'], 'Column 2': ['Another long text that should wrap', 'Short text']})
# 创建 ExcelWriter 对象
writer = pd.ExcelWriter('output.xlsx', engine='openpyxl')
# 将 DataFrame 写入 Excel 文件中
df.to_excel(writer, sheet_name='Sheet1', index=False)
# 获取当前工作表
workbook = writer.book
worksheet = writer.sheets['Sheet1']
# 自适应调整列宽
for column_cells in worksheet.columns:
length = max(len(str(cell.value)) for cell in column_cells)
column = get_column_letter(column_cells[0].column)
adjusted_width = column_width_from_dimensions(worksheet.column_dimensions[column].width)
if length + 1 > adjusted_width:
worksheet.column_dimensions[column].width = length + 1
# 保存 Excel 文件
writer.save()
```
在上面的例子中,我们使用 `pd.ExcelWriter` 创建一个 Excel 文件的写入器。然后,我们将 DataFrame 写入 Excel 文件中,并获取当前工作表对象。接下来,我们使用 openpyxl 库中的自适应列宽函数循环遍历每一列,计算每列的最大宽度,并使用 `worksheet.column_dimensions[column].width` 来自适应调整列宽。最后,我们保存 Excel 文件并关闭写入器。
注意,在使用 `pd.ExcelWriter` 时,需要指定引擎为 `openpyxl`,以便使用 openpyxl 库中的功能。