engine='openpyxl',pandas导出excel根据列字段长度设置自适应列宽度
时间: 2023-12-21 15:03:09 浏览: 355
可以使用 `openpyxl` 库中的 `worksheet.column_dimensions` 属性来设置列宽度。具体实现步骤如下:
1. 导入 pandas 和 openpyxl 库:
```
import pandas as pd
from openpyxl import Workbook
from openpyxl.utils import get_column_letter
```
2. 读取数据并创建 Excel 文件:
```
df = pd.read_csv('data.csv')
writer = pd.ExcelWriter('output.xlsx', engine='openpyxl')
df.to_excel(writer, sheet_name='Sheet1', index=False)
workbook = writer.book
worksheet = writer.sheets['Sheet1']
```
3. 遍历所有列,并根据列字段长度设置列宽度:
```
for col in worksheet.columns:
column = col[0].column_letter
max_length = 0
for cell in col:
try:
if len(str(cell.value)) > max_length:
max_length = len(cell.value)
except:
pass
adjusted_width = (max_length + 2) * 1.2
worksheet.column_dimensions[column].width = adjusted_width
```
上面的代码中,`max_length` 是当前列中最长的字符串长度,`adjusted_width` 是根据最长字符串长度计算出来的适应列宽度。
4. 保存 Excel 文件:
```
writer.save()
```
这样就可以根据列字段长度设置自适应列宽度了。
阅读全文