我有一个脚本,基本上将模板 Excel 文件读入 Pandas 数据框,添加额外的列,然后将其写入输出 Excel 文件。
Excel 文件中的一列包含具有特殊格式的文本(subscript、superscript、删除线、...) .当将该列写回输出文件时,所有这些格式都会丢失并转换为纯文本。
有没有办法在输入和输出之间保留文本格式?
最佳答案
对 Excel 格式设置的最佳直接控制来自 win32 库。以下是安装方法:
https://anaconda.org/anaconda/pywin32
以下是如何在 Excel 中设置单元格格式的示例:
https://pythonexcels.com/python/2009/10/05/python-excel-mini-cookbook
pywin32(包括 win32com.client)最强大的部分是您可以访问所有底层 VBA 命令。因此,在查找有关 win32com.client 与 Excel 交互的文档时,您需要查看 Excel 的对象模型,它位于此处的下拉菜单中:
https://learn.microsoft.com/en-us/office/vba/api/overview/excel
解决下标问题,可以看这里:
https://learn.microsoft.com/en-us/office/vba/api/excel.font.subscript
您应该能够在不更改格式的情况下使用 win32com.client 写回 Excel 文档,但这比像 pandas.to_excel() 这样简单的函数更重
下面的代码将“apples2”写入一个名为“示例工作簿”的已打开工作簿。它还使最后一个字符成为上标。
import win32com.client
# app = win32com.client.dynamic.Dispatch("Excel.Application")
app = win32com.client.gencache.EnsureDispatch("Excel.Application")
app.Interactive = True
app.Visible = True
wb = app.Workbooks("Sample Workbook.xlsx")
ws = wb.Worksheets("Sheet1")
ws.Cells(1,1).Value="Apples2"
ws.Range("A1").Font.Bold = True
ws.Range("A1").GetCharacters(7,1).Font.Superscript = True
关于python - 使用 Pandas 读/写 Excel 文件时如何保留 Excel 文本格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35288801/