【问题标题】:Excel formatting in python without loading workbook在python中格式化Excel而不加载工作簿
【发布时间】:2017-07-12 17:45:16
【问题描述】:

我正在尝试在 python 中格式化我在同一脚本中创建的 excel 文档。我找到的所有答案都涉及将现有工作簿加载到 python 中并从那里格式化。在我的脚本中,我目前正在编写整个未格式化的 Excel 工作表,保存文件,然后立即将文档重新加载到 python 中进行格式化。这是我能找到的唯一解决方法,以便我可以拥有一个活动工作表。

writer=pd.ExcelWriter(file_name, engine='openpyxl')
writer.save()#saving my file
wb=load_workbook(file_name) #reloading file to format
ws=wb.active
ws.column_dimensions['A'].width=33
ws.column_dimensions['B'].width=16 
wb.save(file_name)

这可以改变列宽等方面,但我想要一种在不保存和重新加载的情况下格式化页面的方法。当还没有写入文件名时,有没有办法解决对活动工作表的需求?我想要一种删除第 2 行和第 3 行的方法,但可能是这样。

【问题讨论】:

标签: python excel format openpyxl xlsxwriter


【解决方案1】:

Pandas 在 ExcelWriter 中创建的对象取决于您为其提供的“引擎”。在这种情况下,您传递的是“openpyxl”,因此 ExcelWriter 正在创建一个 openpyxl.Workbook() 对象。您可以使用“Workbook()”在 openpyxl 中创建一个新的工作簿,如下所示:

https://openpyxl.readthedocs.io/en/default/tutorial.html#create-a-workbook

它是用 1 个活动工作表创建的。基本上:

import openpyxl

wb = openpyxl.Workbook()
ws=wb.active
ws.column_dimensions['A'].width=33
ws.column_dimensions['B'].width=16 
wb.save(file_name)

...会做的工作

【讨论】:

    【解决方案2】:

    您的标题具有误导性:您正在使用 Pandas 并转储到 Excel。 Pandas 确实允许对此进行一些格式化,但是因为它试图支持不同的 Python 库(openpyxl、xlsxwriter 和 xlwt),所以对此有一些限制。

    为了完全控制,openpyxl 提供了对 Pandas 的 DataFrame 对象的支持:http://openpyxl.readthedocs.io/en/latest/pandas.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-03
      • 2016-01-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多