13 KiB
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()[1;31m---------------------------------------------------------------------------[0m [1;31mSpireException[0m Traceback (most recent call last) Cell [1;32mIn[2], line 1[0m [1;32m----> 1[0m document[38;5;241m.[39mSaveToFile([38;5;124m"[39m[38;5;124mHtml转Docx.docx[39m[38;5;124m"[39m, FileFormat[38;5;241m.[39mDocx2016) [0;32m 2[0m [38;5;66;03m# 或将结果文档保存为 DOC 文件[39;00m [0;32m 3[0m [38;5;66;03m# document.SaveToFile("Html转Doc.doc", FileFormat.Doc)[39;00m [0;32m 5[0m document[38;5;241m.[39mClose() File [1;32md:\Anaconda3\Lib\site-packages\plum\function.py:642[0m, in [0;36m_BoundFunction.__call__[1;34m(self, *args, **kw_args)[0m [0;32m 641[0m [38;5;28;01mdef[39;00m [38;5;21m__call__[39m([38;5;28mself[39m, [38;5;241m*[39margs, [38;5;241m*[39m[38;5;241m*[39mkw_args): [1;32m--> 642[0m [38;5;28;01mreturn[39;00m [38;5;28mself[39m[38;5;241m.[39mf([38;5;28mself[39m[38;5;241m.[39minstance, [38;5;241m*[39margs, [38;5;241m*[39m[38;5;241m*[39mkw_args) File [1;32md:\Anaconda3\Lib\site-packages\plum\function.py:592[0m, in [0;36mFunction.__call__[1;34m(self, *args, **kw_args)[0m [0;32m 590[0m [38;5;66;03m# Cache failed. Get method and return type, and perform call.[39;00m [0;32m 591[0m method, return_type [38;5;241m=[39m [38;5;28mself[39m[38;5;241m.[39mresolve_method([38;5;241m*[39msig_types) [1;32m--> 592[0m [38;5;28;01mreturn[39;00m _convert(method([38;5;241m*[39margs, [38;5;241m*[39m[38;5;241m*[39mkw_args), return_type) File [1;32md:\Anaconda3\Lib\site-packages\spire\doc\Document.py:2492[0m, in [0;36mDocument.SaveToFile[1;34m(self, fileName, fileFormat)[0m [0;32m 2489[0m enumfileFormat:c_int [38;5;241m=[39m fileFormat[38;5;241m.[39mvalue [0;32m 2491[0m GetDllLibDoc()[38;5;241m.[39mDocument_SaveToFileFF[38;5;241m.[39margtypes[38;5;241m=[39m[c_void_p ,c_char_p,c_int] [1;32m-> 2492[0m CallCFunction(GetDllLibDoc()[38;5;241m.[39mDocument_SaveToFileFF,[38;5;28mself[39m[38;5;241m.[39mPtr, fileNamePtr,enumfileFormat) File [1;32md:\Anaconda3\Lib\site-packages\spire\doc\common\__init__.py:129[0m, in [0;36mCallCFunction[1;34m(func, *args, **kwargs)[0m [0;32m 127[0m [38;5;28;01mif[39;00m old_value [38;5;241m!=[39m modified_value: [0;32m 128[0m info [38;5;241m=[39m PtrToStr(modified_value) [1;32m--> 129[0m [38;5;28;01mraise[39;00m SpireException(info) [0;32m 130[0m [38;5;28;01mreturn[39;00m result [1;31mSpireException[0m: 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
[1;31m在当前单元格或上一个单元格中执行代码时 Kernel 崩溃。 [1;31m请查看单元格中的代码,以确定故障的可能原因。 [1;31m单击<a href='https://aka.ms/vscodeJupyterKernelCrash'>此处</a>了解详细信息。 [1;31m有关更多详细信息,请查看 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")[1;31m---------------------------------------------------------------------------[0m [1;31mOSError[0m Traceback (most recent call last) Cell [1;32mIn[4], line 9[0m [0;32m 6[0m html_text [38;5;241m=[39m f[38;5;241m.[39mread() [0;32m 8[0m [38;5;66;03m# 使用pypandoc将HTML转换成Word格式[39;00m [1;32m----> 9[0m output [38;5;241m=[39m pypandoc[38;5;241m.[39mconvert_text(html_text, [38;5;124m'[39m[38;5;124mdocx[39m[38;5;124m'[39m, [38;5;28mformat[39m[38;5;241m=[39m[38;5;124m'[39m[38;5;124mhtml[39m[38;5;124m'[39m) [0;32m 11[0m [38;5;66;03m# 创建一个新的Word文档[39;00m [0;32m 12[0m doc [38;5;241m=[39m Document() File [1;32md:\Anaconda3\Lib\site-packages\pypandoc\__init__.py:94[0m, in [0;36mconvert_text[1;34m(source, to, format, extra_args, encoding, outputfile, filters, verify_format, sandbox, cworkdir)[0m [0;32m 58[0m [38;5;250m[39m[38;5;124;03m"""Converts given `source` from `format` to `to`.[39;00m [0;32m 59[0m [0;32m 60[0m [38;5;124;03m:param str source: Unicode string or bytes (see encoding)[39;00m [1;32m (...)[0m [0;32m 91[0m [38;5;124;03m path.[39;00m [0;32m 92[0m [38;5;124;03m"""[39;00m [0;32m 93[0m source [38;5;241m=[39m _as_unicode(source, encoding) [1;32m---> 94[0m [38;5;28;01mreturn[39;00m _convert_input(source, [38;5;28mformat[39m, [38;5;124m'[39m[38;5;124mstring[39m[38;5;124m'[39m, to, extra_args[38;5;241m=[39mextra_args, [0;32m 95[0m outputfile[38;5;241m=[39moutputfile, filters[38;5;241m=[39mfilters, [0;32m 96[0m verify_format[38;5;241m=[39mverify_format, sandbox[38;5;241m=[39msandbox, [0;32m 97[0m cworkdir[38;5;241m=[39mcworkdir) File [1;32md:\Anaconda3\Lib\site-packages\pypandoc\__init__.py:367[0m, in [0;36m_convert_input[1;34m(source, format, input_type, to, extra_args, outputfile, filters, verify_format, sandbox, cworkdir, sort_files)[0m [0;32m 364[0m _check_log_handler() [0;32m 366[0m logger[38;5;241m.[39mdebug([38;5;124m"[39m[38;5;124mEnsuring pandoc path...[39m[38;5;124m"[39m) [1;32m--> 367[0m _ensure_pandoc_path() [0;32m 369[0m [38;5;28;01mif[39;00m verify_format: [0;32m 370[0m logger[38;5;241m.[39mdebug([38;5;124m"[39m[38;5;124mVerifying format...[39m[38;5;124m"[39m) File [1;32md:\Anaconda3\Lib\site-packages\pypandoc\__init__.py:802[0m, in [0;36m_ensure_pandoc_path[1;34m()[0m [0;32m 794[0m logger[38;5;241m.[39minfo(textwrap[38;5;241m.[39mdedent([38;5;124m"""[39m[38;5;130;01m\[39;00m [0;32m 795[0m [38;5;124m See http://johnmacfarlane.net/pandoc/installing.html[39m [0;32m 796[0m [38;5;124m for installation options[39m [0;32m 797[0m [38;5;124m[39m[38;5;124m"""[39m)) [0;32m 798[0m logger[38;5;241m.[39minfo(textwrap[38;5;241m.[39mdedent([38;5;124m"""[39m[38;5;130;01m\[39;00m [0;32m 799[0m [38;5;124m ---------------------------------------------------------------[39m [0;32m 800[0m [0;32m 801[0m [38;5;124m[39m[38;5;124m"""[39m)) [1;32m--> 802[0m [38;5;28;01mraise[39;00m [38;5;167;01mOSError[39;00m([38;5;124m"[39m[38;5;124mNo pandoc was found: either install pandoc and add it[39m[38;5;130;01m\n[39;00m[38;5;124m"[39m [0;32m 803[0m [38;5;124m"[39m[38;5;124mto your PATH or or call pypandoc.download_pandoc(...) or[39m[38;5;130;01m\n[39;00m[38;5;124m"[39m [0;32m 804[0m [38;5;124m"[39m[38;5;124minstall pypandoc wheels with included pandoc.[39m[38;5;124m"[39m) [1;31mOSError[0m: 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.