Files
python----/转换测试.ipynb
2025-10-20 12:32:18 +08:00

13 KiB

In [1]:
from spire.doc import *
from spire.doc.common import *
 
# 创建一个 Document 对象
document = Document()
# 加载一个 HTML 文件
document.LoadFromFile("E:/tem/test/2.html", FileFormat.Html, XHTMLValidationType.Transitional)
 
# 将 HTML 文件保存为 DOCX 文件

    
In [2]:
document.SaveToFile("Html转Docx.docx", FileFormat.Docx2016)
# 或将结果文档保存为 DOC 文件
# document.SaveToFile("Html转Doc.doc", FileFormat.Doc)
 
document.Close()
---------------------------------------------------------------------------
SpireException                            Traceback (most recent call last)
Cell In[2], line 1
----> 1 document.SaveToFile("Html转Docx.docx", FileFormat.Docx2016)
      2 # 或将结果文档保存为 DOC 文件
      3 # document.SaveToFile("Html转Doc.doc", FileFormat.Doc)
      5 document.Close()

File d:\Anaconda3\Lib\site-packages\plum\function.py:642, in _BoundFunction.__call__(self, *args, **kw_args)
    641 def __call__(self, *args, **kw_args):
--> 642     return self.f(self.instance, *args, **kw_args)

File d:\Anaconda3\Lib\site-packages\plum\function.py:592, in Function.__call__(self, *args, **kw_args)
    590 # Cache failed. Get method and return type, and perform call.
    591 method, return_type = self.resolve_method(*sig_types)
--> 592 return _convert(method(*args, **kw_args), return_type)

File d:\Anaconda3\Lib\site-packages\spire\doc\Document.py:2492, in Document.SaveToFile(self, fileName, fileFormat)
   2489 enumfileFormat:c_int = fileFormat.value
   2491 GetDllLibDoc().Document_SaveToFileFF.argtypes=[c_void_p ,c_char_p,c_int]
-> 2492 CallCFunction(GetDllLibDoc().Document_SaveToFileFF,self.Ptr, fileNamePtr,enumfileFormat)

File d:\Anaconda3\Lib\site-packages\spire\doc\common\__init__.py:129, in CallCFunction(func, *args, **kwargs)
    127 if old_value != modified_value:
    128     info = PtrToStr(modified_value)
--> 129     raise SpireException(info)
    130 return result

SpireException: IO_SharingViolation_File, e:\project\python\工具\Html转Docx.docx:   at Microsoft.Win32.SafeHandles.SafeFileHandle.CreateFile(String, FileMode, FileAccess, FileShare, FileOptions) + 0x15c
   at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String, FileMode, FileAccess, FileShare, FileOptions, Int64, Nullable`1) + 0x95
   at System.IO.Strategies.OSFileStreamStrategy..ctor(String, FileMode, FileAccess, FileShare, FileOptions, Int64, Nullable`1) + 0x50
   at sprfa9.spra(Document, String) + 0xaf
   at Spire.Doc.Document.sprq(String) + 0x59
   at Spire.Doc.AOT.NLDocument.Document_SaveToFileFF(IntPtr, IntPtr, Int32, IntPtr) + 0x6d
在当前单元格或上一个单元格中执行代码时 Kernel 崩溃。

请查看单元格中的代码,以确定故障的可能原因。

单击<a href='https://aka.ms/vscodeJupyterKernelCrash'>此处</a>了解详细信息。

有关更多详细信息,请查看 Jupyter <a href='command:jupyter.viewOutput'>log</a>。
In [3]:
document.Close()
In [4]:
from docx import Document
import pypandoc
 
# 读取HTML文件
with open("1.html", "r") as f:
    html_text = f.read()
 
# 使用pypandoc将HTML转换成Word格式
output = pypandoc.convert_text(html_text, 'docx', format='html')
 
# 创建一个新的Word文档
doc = Document()
 
# 将pypandoc转换的Word内容添加到文档中
doc.add_paragraph(output)
 
# 保存文档
doc.save("output.docx")
---------------------------------------------------------------------------
OSError                                   Traceback (most recent call last)
Cell In[4], line 9
      6     html_text = f.read()
      8 # 使用pypandoc将HTML转换成Word格式
----> 9 output = pypandoc.convert_text(html_text, 'docx', format='html')
     11 # 创建一个新的Word文档
     12 doc = Document()

File d:\Anaconda3\Lib\site-packages\pypandoc\__init__.py:94, in convert_text(source, to, format, extra_args, encoding, outputfile, filters, verify_format, sandbox, cworkdir)
     58 """Converts given `source` from `format` to `to`.
     59 
     60 :param str source: Unicode string or bytes (see encoding)
   (...)
     91         path.
     92 """
     93 source = _as_unicode(source, encoding)
---> 94 return _convert_input(source, format, 'string', to, extra_args=extra_args,
     95                       outputfile=outputfile, filters=filters,
     96                       verify_format=verify_format, sandbox=sandbox,
     97                       cworkdir=cworkdir)

File d:\Anaconda3\Lib\site-packages\pypandoc\__init__.py:367, in _convert_input(source, format, input_type, to, extra_args, outputfile, filters, verify_format, sandbox, cworkdir, sort_files)
    364 _check_log_handler()
    366 logger.debug("Ensuring pandoc path...")
--> 367 _ensure_pandoc_path()
    369 if verify_format:
    370     logger.debug("Verifying format...")

File d:\Anaconda3\Lib\site-packages\pypandoc\__init__.py:802, in _ensure_pandoc_path()
    794 logger.info(textwrap.dedent("""\
    795     See http://johnmacfarlane.net/pandoc/installing.html
    796     for installation options
    797 """))
    798 logger.info(textwrap.dedent("""\
    799     ---------------------------------------------------------------
    800 
    801 """))
--> 802 raise OSError("No pandoc was found: either install pandoc and add it\n"
    803               "to your PATH or or call pypandoc.download_pandoc(...) or\n"
    804               "install pypandoc wheels with included pandoc.")

OSError: No pandoc was found: either install pandoc and add it
to your PATH or or call pypandoc.download_pandoc(...) or
install pypandoc wheels with included pandoc.