【发布时间】:2015-02-27 21:38:59
【问题描述】:
我想知道 openpyxl 是否可以读取和/或将富文本写入 excel。我知道这个问题在 2012 年之前被问过一次,链接如下,但我不确定这是否已经改变。
就目前而言,load_workbook() 似乎抛弃了富文本格式。
至于一个特定的问题,我需要打开、编辑和保存一个工作簿,其中一些单元格在一个单元格中同时包含上标文本和普通文本。当我保存工作簿时,单元格第一个字符的格式将应用于单元格的其余部分。
这是 2012 年的问题:
How do I find the formatting for a subset of text in an Excel document cell
环顾四周,似乎在 openpyxl 中实现了富文本(基于 openpyxl 的 bitbucket 上的问题列表):
https://bitbucket.org/openpyxl/openpyxl/issues?q=rich+text
但我仍然不清楚如何使用它(如果我完全正确地解释了问题列表)。如果它有帮助,我实际上并没有编辑这些单元格的内容,只是因为它们在保存时不会丢失格式。
任何想法将不胜感激。
谢谢! 最好的
【问题讨论】:
-
在文件级别工作(即完全绕过 Excel)时,“不编辑单元格的内容”可能非常棘手。 Excel文件的结构很像web,不是很像stream,所以在实践中并不真正存在对Excel文件进行“本地化手术修改”的概念。您几乎总是必须将大部分数据加载到内存中,然后在保存时从头开始重写整个内容,无论您的更改看起来多么小,直观。甚至 Excel 本身也会这样做,但它是一个巨大的程序,并且对用户隐藏了其中的大部分内容。
-
所以,当涉及到格式化(或者更确切地说,尝试进行一些更改而不是格式化!)时,我发现让 Excel 处理所有事情是最简单的,如果你可以摆动它。 (换句话说,如果您使用的是安装了 Excel 的计算机。)如果出于某种原因您不想使用 VBA、VBScript 或 .NET 语言,您可以通过 Python 以编程方式控制正在运行的 Excel 实例.
-
谢谢!我想的也差不多。我一直在尝试避免使用使用 COM 的包,以便我可以跨平台运行脚本,但我想这是不可避免的(当然,除非出现另一个答案)..
-
使用 xlwings 在 Windows 或 Mac OS 上远程控制 Excel。
-
xlwings 看起来是一个很棒的实现。我会试一试。谢谢!
标签: python excel text openpyxl