【问题标题】:Editing workbooks with rich text in openpyxl在 openpyxl 中使用富文本编辑工作簿
【发布时间】: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


【解决方案1】:

openpyxl 不支持低于单元格级别的格式。要使用它,您必须在 编写 时实现自己的代码,因为 openpyxl 只存储它接收到的任何字符串。完整的读/写支持会增加很多复杂性。

【讨论】:

猜你喜欢
  • 2010-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-27
  • 1970-01-01
相关资源
最近更新 更多