【问题标题】:Converting docx table into html (keeping all formatting) or an image to use in html将 docx 表转换为 html(保留所有格式)或要在 html 中使用的图像
【发布时间】:2019-08-25 00:40:20
【问题描述】:

我使用 python-docx 在我的 docx 文件中使用指定的样式格式创建了一些表格。我现在需要使用具有相同格式的这些表。有没有办法可以将包含所有格式和样式、颜色等的表格转换为 html?还是没有一种简单(自动)的方式将表格制作成可以使用的图形?

【问题讨论】:

  • 使用 python 代码将 docx 文件保存为 .html 表单。我手动试了一下,效果很好。
  • 感谢 Suraj M,这听起来很有用。您是否有显示如何执行此操作的示例或链接?它是否保留所有格式,例如单元格颜色、字体大小等?
  • 我在下面添加了示例代码以将 docx 转换为 html
  • 下面我贴了两个代码使用win32模块来保持格式和图像。
  • 如果下面的代码示例有用,您可以投票给我吗。

标签: python html python-2.7 python-docx


【解决方案1】:

要将 Docx 转换为 HTML,请使用以下代码:

以下代码不识别来自 docx 的表格和图像。它将 docx 转换为 html,但不保留表格和图像。

import mammoth

Docx = open("docx_file.docx", 'rb')
html = open('html_filename.html', 'wb')
document = mammoth.convert_to_html(Docx )
html.write(document.value.encode('utf8'))
Docx.close()
html.close()

要保持格式和图像,请使用 win32 包将 docx 转换为 html。

import win32com.client

doc = win32com.client.GetObject ("docx_InputFile.docx")
doc.SaveAs (FileName="Html_FileName.html", FileFormat=8)
doc.Close ()

【讨论】:

  • 感谢 Suraj M。这将非常有用。但是,我遇到了一些错误并被卡住了: pywintypes.com_error: (-2147221020,'Invalid syntax', None,None) in win32 的 Moniker。你碰巧知道如何解决它吗?事实证明我的搜索不是很有用,到目前为止找到的任何建议都没有奏效
  • @oben 你用的是哪个版本的python?
  • 我的版本是2.7
  • @oben 我在 python 3.6 上测试了我的代码它对我来说很好。您是否将 docx 路径作为绝对路径传递。不要传递相对路径。
  • 是的,使用绝对路径
【解决方案2】:

我找不到合适的解决方案,它支持格式和样式的转换。但是您可以尝试使用以下命令将 docx 转换为 jpg:DOCX to JPG API。此服务的 Python 库和 sn-ps 在这里:ConvertAPI/convertapi-python

【讨论】:

  • 感谢 SmartWaddles,您知道是否可以自动转换表格而不是整个文档?很遗憾,我无法查看第一个链接
  • @oben,它看起来像是将整个文档转换为 jpg 文件。您可以使用 VBA 之类的东西或一些 Python 模块将表格从您的初始 docx 文件中提取到 docx 中,仅包含您需要转换的表格。
  • 谢谢@SmartWaddles 我不确定我能否为这项工作做到这一点,因为如果复制到另一个格式与文档的特定样式模板相关联,我认为格式会改变。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-25
  • 1970-01-01
  • 2015-06-11
  • 1970-01-01
  • 1970-01-01
  • 2010-12-30
相关资源
最近更新 更多