Python:借助openpyxl实现pandas to_excel自适应列宽
在使用pandas的`to_excel`方法将数据写入Excel文件时,pandas本身并没有直接提供设置自适应列宽的功能。我们可以借助openpyxl库来实现这一功能。 以下是一个示例: ```python import pandas as pd from openpyxl import Workbook from openpyxl.utils.dataframe import dataframe_to_rows # 假设df是你的DataFrame df = pd.DataFrame({ 'Column1': ['Some very long text', 'Short text'], 'Column2': [1, 2], # 更多列... }) # 创建一个ExcelWriter对象,指定引擎为openpyxl writer = pd.ExcelWriter('output.xlsx', engine='openpyxl') # 将DataFrame写入Excel df.to_excel(writer, index=False) # 获取Workbook对象 workbook = writer.book # 获取Worksheet对象,假设默认的工作表名为'Sheet1' worksheet = workbook['Sheet1'] # 遍历DataFrame的每一列,根据内容自动调整列宽 for column in df.columns: max_length = 0 for cell in dataframe_to_rows(df[column], index=False): max_length = max(max_length, len(str(cell[0]))) worksheet.column_dimensions[column].width = max_length * 1.2 # 自定义调整系数,以适应字体大小等 # 保存Excel文件 writer.save() ``` 这段代码首先计算出每列的最大长度,然后根据这个最大长度来设置Excel的列宽,实现了自适应的效果。其中`1.2`是一个调整系数,可以根据实际需要进行调整,一般用于补偿字体大小、边距等因素对列宽的影响。 ######[AI写代码神器 | 354点数解答 | 2024-01-10 17:47:52]
- 代码优化指南:Python邮件操作代码的改进建议与注意要点(字节豆包 | 182点数解答 | 2025-04-12 00:49:09)228
- Python 运行报错:urllib3 网络连接创建失败,原因及排查建议(字节豆包 | 161点数解答 | 2024-10-31 00:39:36)478
- Python:用模拟退火算法求解多车辆路径规划问题并可视化(GPT | 2729点数解答 | 2024-11-25 15:32:50)245
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)362
- Python 实战:学生信息列表转字典、遍历、深拷贝及数据修改全流程(GPT | 422点数解答 | 2024-10-29 15:43:54)432
- Python实战:学生成绩列表转字典,深拷贝与数据修改操作全解析(字节豆包 | 254点数解答 | 2024-10-29 16:01:39)426
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)333
- 用 openpyxl 给 Excel 表格区域加黑线,附详细代码与注意要点(阿里通义 | 323点数解答 | 2024-11-23 16:47:32)88
- 用 openpyxl 实现 Excel 最后一列剪切到前一列:附代码及注意要点(阿里通义 | 343点数解答 | 2024-11-23 17:10:41)102
- 代码漏洞大揭秘:Pandas数据预处理逻辑、细节全修正!(字节豆包 | 635点数解答 | 2025-06-25 15:46:50)181
- Java调用Python接口中文乱码?设置UTF - 8编码一招解决!(讯飞星火 | 263点数解答 | 2024-06-06 17:07:59)406
- 解决Java调用Python接口中文乱码问题:设置UTF - 8编码全攻略(讯飞星火 | 160点数解答 | 2024-06-06 17:18:39)429