如何用Python在Excel中选择全部列以适配动态列数?
解决方案
选中全部列(包含无数据的空列)
直接使用Excel支持的最大列范围"$A:$XFD"(Excel最多支持到XFD列,共16384列),替换后代码如下:import pandas as pd df = pd.DataFrame(...) # 你的目标数据集 writer = pd.ExcelWriter("File.xlsx", engine="xlsxwriter") df.to_excel(writer, sheet_name="Sheet", index=False) # 设置所有列宽度为10 writer.sheets["Sheet"].set_column("$A:$XFD", 10) writer.close()仅设置有数据的列(更高效)
如果只需要对实际有数据的列设置宽度,可以根据DataFrame的列数动态生成范围:- 先实现列数转Excel列字母的工具函数
- 动态生成列范围并设置宽度
import pandas as pd def col_num_to_letter(col_num): letter = '' while col_num > 0: col_num, remainder = divmod(col_num - 1, 26) letter = chr(65 + remainder) + letter return letter df = pd.DataFrame(...) # 你的目标数据集 writer = pd.ExcelWriter("File.xlsx", engine="xlsxwriter") df.to_excel(writer, sheet_name="Sheet", index=False) # 获取数据最后一列的对应字母 last_col_letter = col_num_to_letter(df.shape[1]) # 设置A到最后一列的宽度为10 writer.sheets["Sheet"].set_column(f"A:{last_col_letter}", 10) writer.close()
内容的提问来源于stack exchange,提问作者Mr.Slow
相关产品推荐
相关产品推荐

