Python DataFrame实现将多个URL合并到单个单元格并导出Excel
问题原因
直接把Python列表对象存入DataFrame单元格导出Excel时,默认导出逻辑不会自动把列表元素拆分到同一单元格的多行展示,会出现内容显示异常的问题。要实现预期效果,需要先把列表处理为Excel可识别的换行文本,再配置对应单元格开启自动换行格式。
修改步骤
- 对存储URL的列表,用换行符
\n拼接为单个字符串,作为单元格的实际存储内容 - 导出Excel时使用
openpyxl作为写入引擎,给URL所在列设置自动换行属性,保证多个URL可以在单个单元格内分行展示
完整代码
import pandas as pd from openpyxl.styles import Alignment # 原始测试数据 urls1 = ["https://url1.com/","https://url2.com/"] urls2 = ["https://url3.com/","https://url4.com/"] # 构造DataFrame时提前把URL列表拼接为带换行符的字符串 df1 = pd.DataFrame( [["First url", "\n".join(urls1)], ["Second url", "\n".join(urls2)]], columns=['column 1', 'column 2'] ) # 写入Excel并配置单元格格式 with pd.ExcelWriter('excel.xlsx', engine='openpyxl') as writer: df1.to_excel(writer, index=False, header=True) # 获取默认生成的Sheet1工作表对象 worksheet = writer.sheets['Sheet1'] # 给URL所在的B列设置自动换行、顶部对齐,匹配预期展示效果 for cell in worksheet['B']: cell.alignment = Alignment(wrap_text=True, vertical='top')
运行前如果缺少依赖,先执行
pip install pandas openpyxl安装对应库即可。
运行后生成的Excel文件效果如下:
内容的提问来源于stack exchange,提问作者kilehed
相关产品推荐
相关产品推荐

