冰蓝科技
|
028-81705109
|
|
微信扫一扫
|

Spire.Cloud 纯前端文档控件

使用Python实现Word到HTML转换

Word 是办公中常用的文档格式,而 HTML 是网页内容展示的标准语言。将 Word (.doc或.docx)文档精准转换为 HTML 格式,可以方便地将内容嵌入到网站、内容管理系统或邮件模板中。这种转换尤其适合用于知识库、产品说明、服务协议等需要以网页形式展示文档内容的场景。

本文将介绍如何使用 Spire.Doc for Python 库在Python中实现 Word 到 HTML 的格式转换。内容涵盖基础转换与自定义转换两种实现方式,并提供完整的代码示例,帮助开发者灵活应对不同项目对 HTML 输出的样式与结构控制需求。

目录

Word 转 HTML 的常见应用场景

将 Word 文档转换为 HTML 格式,适用于多种业务场景,例如:

  • 网页展示:将 Word 内容直接展示在网页中,用户无需下载,即可在浏览器中查看文档。
  • CMS 系统导入:将 Word 撰写的内容导入内容管理系统(CMS)进行后续编辑、发布。
  • 在线预览:为 Word 附件或文档库生成 HTML 格式的在线预览,提高访问效率。
  • 邮件模板生成:将 DOCX 文档内容转换为 HTML,可作为邮件正文模板嵌入发送系统。

安装Python Word转HTML库

Spire.Doc for Python 是一款专为 Word 文档处理与格式转换而设计的库。该库功能稳定、易于使用,可在不依赖 Microsoft Word 或 Office 的情况下,将 Word 文档精准导出为 HTML,并保持文档原有的样式与布局。

使用 Spire.Doc 的优势

  • 保留完整格式:支持字体、颜色、段落样式、表格、图片等多种元素的高保真转换。
  • 完全脱离 Office 环境:不依赖 Microsoft Word 或 Office Interop,支持跨平台部署。
  • 兼容多种文档格式:支持读取和导出 DOCX(Word 2007及以上格式)与 DOC(Word 97 – 2003格式)到HTML。
  • 导出结果可自定义:可自定义 HTML 中是否嵌入图片、是否输出页眉页脚、CSS 样式使用方式等。

安装方式

在终端中运行以下pip命令即可完成安装:

pip install spire.doc

如需详细安装指导,请参考教程:如何在Windows上安装Spire.Doc for Python。

Python 实现 Word 转 HTML 的方法

Spire.Doc for Python 支持将 Word 文档以默认或自定义设置转换为 HTML,满足快速导出或样式精细控制等不同需求。下文将分别对这两种实现方式进行详细介绍。

快速导出(默认设置)

如果仅需将 Word 内容一键转换为 HTML 文件,且不涉及样式修改或结构调整,可通过 LoadFromFile 方法加载 Word 文档,并直接使用 SaveToFile 方法将其保存为 HTML 格式。

Word转HTML 代码示例

from spire.doc import *
from spire.doc.common import *

# 创建 Document 对象
document = Document()
# 加载 Word 文档(支持 DOC 和 DOCX)
document.LoadFromFile("清单.docx")

# 保存为 HTML 格式
document.SaveToFile("Output/Word转Html.html", FileFormat.Html)

# 关闭文档释放资源
document.Close()

使用Spire.Doc将 Word 文档导出为 HTML 的输出示意图

自定义导出选项(高级设置)

若对 HTML 输出的结构与样式有更高的控制需求,可通过 Spire.Doc 提供的 HtmlExportOptions 属性进行自定义配置。通过该属性,开发者可以灵活设置是否保留页眉页脚,是否嵌入图片,CSS 的引用方式,以及表单字段的导出形式等,从而实现更精细的页面布局与资源管理,满足复杂项目对 HTML 格式的个性化要求。

自定义Word到HTML导出选项代码示例

from spire.doc import *
from spire.doc.common import *

# 创建 Document 实例
document = Document()

# 加载 Word 文件
document.LoadFromFile("清单.docx")

# 设置:导出时不包含页眉和页脚
document.HtmlExportOptions.HasHeadersFooters = False

# 设置:指定导出 HTML 使用的外部 CSS 文件名
document.HtmlExportOptions.CssStyleSheetFileName = "sample.css"

# 设置:样式类型为外部引用(非内联)
document.HtmlExportOptions.CssStyleSheetType = CssStyleSheetType.External

# 设置:图片不嵌入 HTML 中,保存在指定文件夹中
document.HtmlExportOptions.ImageEmbedded = False
document.HtmlExportOptions.ImagesPath = "Images/"

# 设置:将表单字段以纯文本形式导出,而不是交互式控件
document.HtmlExportOptions.IsTextInputFormFieldAsText = True

# 保存为 HTML 文件
document.SaveToFile("Output/自定义Word转Html.html", FileFormat.Html)
document.Close()

总结

本文介绍了如何使用 Spire.Doc for Python 将 Word(.doc/.docx)文档精准转换为 HTML 格式,适用于网页展示、CMS 内容导入、邮件模板生成等多种场景。无论是通过快速导出方式实现一键式转换,还是利用自定义导出选项对样式和结构进行精细控制,开发者都可以根据具体项目需求,灵活选择合适的转换方式。
此外,Spire.Doc 还支持 Word 转 PDF、Word 文档合并、查找与替换内容等多种操作,您可以进一步阅读相关教程,深入掌握 Word 文档处理技巧。

常见问题解答(FAQs)

Q1:Spire.Doc 是否支持将 DOC 和 DOCX 两种格式转换为 HTML?
A1:支持,Spire.Doc 可兼容旧版 DOC 和现代 DOCX 格式的导出。

Q2:转换过程中是否必须安装 Microsoft Word?
A2:不需要,Spire.Doc 是一个独立运行的库,无需依赖 Word 或 Office。

Q3:转换时是否可以将图片嵌入 HTML 中,而非单独保存?
A3:可以,只需将 ImageEmbedded 属性设置为 True,即可将所有图片嵌入到 HTML 文件中,无需创建额外图片目录。

Q4:Spire.Doc for Python是否支持跨平台运行?
A4:支持。该库不依赖 Office,能够在Windows、Linux和MacOS等多种操作系统和环境中稳定运行。

获取免费授权

如需体验 Spire.Doc for .NET 的完整功能(无评估限制),你可以该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。免费 30 天试用授权。

Spire.XLS for Java 13.10.0已发布。该版本新增支持验证限制编辑的密码是否正确的方法。同时,也增强了从Excel到PDF、图像和OFD格式的转换功能。此外,一些已知问题也在该版本中被成功修复,如加载Excel文档时,程序抛出“Invalid ValidationAlertType string val"的问题。详情请阅读以下内容。

新功能:

问题修复:


获取Spire.XLS for Java 13.10.0请点击:

https://www.e-iceblue.cn/Downloads/Spire-XLS-JAVA.html

编辑限制是 Word 文档中的一项安全功能,可以限制他人能对文档所做的修改。通过应用编辑限制,文档所有者可以指定可对文档进行哪种类型的编辑,以及可在文档的哪些部分进行编辑,保护文档内容和格式的完整,从而方便进行协作编辑和信息收集等。本文将介绍如何使用 Spire.Doc for Python 在 Python 程序中限制对 Word 文档的编辑以及移除 Word 文档编辑限制。

安装 Spire.Doc for Python

本教程需要用到 Spire.Doc for Python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 Windows 中。

pip install Spire.Doc

如果您不确定如何安装,请参考此教程:如何在 Windows 中安装 Spire.Doc for Python

使用密码限制对整个 Word 文档的编辑

Word 文档中有四种编辑限制:不允许任何更改(只读)、修订、批注和填写窗体。Spire.Doc for Python 提供了 Document.Protect() 方法和 ProtectionType 枚举来对 Word 文档设置指定类型的编辑限制。

下表是 ProtectionType 枚举和对应编辑限制类型及说明:

枚举 编辑限制类型 说明
ProtectionType.AllowOnlyReading 不允许任何更改(只读) 只允许阅读文档
ProtectionType.AllowOnlyRevisions 修订 只允许修订文档
ProtectionType.AllowOnlyComments 批注 只允许添加评论
ProtectionType.AllowOnlyFormFields 填写窗体 只允许填写表单
ProtectionType.NoProtection 无 无编辑限制
  • Python
from spire.doc import *
from spire.doc.common import *

# 创建一个Document类对象
doc = Document()

# 加载一个Word文档
doc.LoadFromFile("示例.docx")

# 将编辑限制类型设置为只读(无更改)
doc.Protect(ProtectionType.AllowOnlyReading, "password")

# 将编辑限制类型设置为修订
# doc.Protect(ProtectionType.AllowOnlyRevisions, "password")

# 将编辑限制类型设置为批注
# doc.Protect(ProtectionType.AllowOnlyComments, "password")

# 将编辑限制类型设置为填写窗体
# doc.Protect(ProtectionType.AllowOnlyFormFields, "password")

# 保存文档
doc.SaveToFile("output/编辑限制.docx")
doc.Close()

Python 设置或取消 Word 文档编辑限制

设置 Word 文档编辑限制时添加可编辑区域

在设置 Word 文档的编辑限制时,用户可以通过插入允许编辑区域的起始和结束标记来添加例外项(不受限制的区域)。具体操作步骤如下:

  • Python
from spire.doc import *
from spire.doc.common import *

# 创建一个Document类对象
doc = Document()

# 加载一个Word文档
doc.LoadFromFile("示例.docx")

# 获取第一节
section = doc.Sections.get_Item(0)

# 创建权限起始标记和结束标记
start = PermissionStart(doc, "exception1")
end = PermissionEnd(doc, "exception1")

# 将权限起始标记和结束标记插入到第一节中
paragraph = section.Paragraphs.get_Item(1)
paragraph.ChildObjects.Insert(0, start)
paragraph.ChildObjects.Add(end)

# 设置编辑限制
doc.Protect(ProtectionType.AllowOnlyReading, "password")

# 保存文档
doc.SaveToFile("output/可编辑区域.docx")
doc.Close()

Python 设置或取消 Word 文档编辑限制

移除 Word 文档种的编辑限制

取消文档的编辑限制时,只需使用 Document.Protect() 方法将编辑限制类型设置为无即可。具体步骤如下:

  • Python
from spire.doc import *
from spire.doc.common import *

# 创建一个Document类对象
doc = Document()

# 加载一个Word文档
doc.LoadFromFile("output/编辑限制.docx")

# 通过将限制类型设置为无限制来移除编辑限制
doc.Protect(ProtectionType.NoProtection)

# 保存文档
doc.SaveToFile("output/移除编辑限制.docx")
doc.Close()

Python 设置或取消 Word 文档编辑限制

申请临时 License

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。

TXT 文本文件是一种存储纯文本数据的简单、通用且易于处理的文件格式。如果想要在文本文件中应用格式或添加图片、图表、表格和其他媒体元素,推荐的方案是将它们转换为 Word 文件。

反之,如果想要有效地提取 Word 文档的内容或减小文件大小,可以将它们转换为文本格式。本文将演示如何使用 Spire.Doc for Python 通过代码实现 Word 文档和 TXT 纯文本文件的互转。

安装 Spire.Doc for Python

本教程需要用到 Spire.Doc for Python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 Windows 中。

pip install Spire.Doc

如果您不确定如何安装,请参考此教程:如何在 Windows 中安装 Spire.Doc for Python

Python 将 TXT 文本转换为 Word

TXT 文件转换为 Word 文档的操作十分简单,仅需几行代码即可实现。具体步骤如下。

  • Python
from spire.doc import *
from spire.doc.common import *

# 创建Document类的对象
document = Document()

# 加载文本文件
document.LoadFromFile("示例.txt")

# 将文本文件保存为Word
document.SaveToFile("Output/Txt转Word.docx", FileFormat.Docx2016)
document.Close()

Python 将 TXT 转换为 Word 或将 Word 转换为 TXT

Python 将 Word 转换为 TXT 文本

Spire.Doc for Python 提供的 Document.SaveToFile(string fileName, FileFormat.Txt) 方法可将 Word 文件导出为 TXT 纯文本格式。具体步骤如下。

  • Python
from spire.doc import *
from spire.doc.common import *

# 创建Document类的对象
document = Document()

# 加载Word文件
document.LoadFromFile("云计算.docx")

# 将Word文件保存为txt格式
document.SaveToFile("Output/Word转Txt.txt", FileFormat.Txt)
document.Close()

Python 将 TXT 转换为 Word 或将 Word 转换为 TXT

申请临时 License

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。

python提取pdf文本内容

PDF 文件作为一种通用且广泛使用的文档格式,常见于合同、发票、报告、电子书等多种场景。虽然 PDF 文件在排版和展示效果上表现出色,但由于其底层结构采用图层、对象和坐标的存储方式,导致从 PDF 中直接提取文本变得复杂且具有挑战性。

尤其面对包含大量页码、嵌套表格或图文混排的 PDF 文件时,传统的复制粘贴方法效率低下且难以保持文本的原始格式和结构。为了实现高效、精准的 PDF 文本提取,开发者通常借助专业的 Python PDF 解析库,通过编程方式自动读取并提取所需内容。

本教程将详细介绍如何使用 Spire.PDF for Python 库在 Python 中轻松 实现 PDF 文本的全面提取,包括全文提取、按页提取、按区域提取、过滤隐藏文本,以及获取文本在页面中的坐标和尺寸信息。通过本教程,您将掌握实用的 PDF 文本提取技巧,快速构建自动化处理和数据分析的解决方案。

目录

为什么要提取PDF文件内容

读取PDF文件内容在诸多应用场景中具有重要意义,例如:

  • 将数据提取出来用于统计和业务分析
  • 将不可编辑的PDF内容转换为可编辑格式
  • 提取文本以便进行多语言转换

安装PDF 解析库 – Spire.PDF for Python

Spire.PDF for Python 是一款功能全面且易于使用的 PDF 处理库,主要用于帮助开发者简化PDF文档创建和操作等任务。它提供了强大的文本提取功能,适用于解析各种结构的 PDF 文档。

安装方式

您可以通过在终端中运行以下命令轻松安装该库:

pip install spire.pdf

如需了解详细安装步骤,请参考此教程:如何在 Windows 上安装 Spire.PDF for Python

提取 PDF 文本(基础示例)

以下示例展示了如何快速提取 PDF 文档中的全部文本。该方法逐页遍历文档,提取每页文本,并将包含空格和换行的完整内容保存到文本文件,便于后续查看和处理。

  • Python
from spire.pdf.common import *
from spire.pdf import *

# 创建 PdfDocument 对象
doc = PdfDocument()

# 加载 PDF 文件
doc.LoadFromFile("C:/Users/Administrator/Desktop/in.pdf")

# 用于保存提取结果的变量
all_text = ""

# 创建 PdfTextExtractOptions 对象
extractOptions = PdfTextExtractOptions()
# 启用提取全部文本(包含空格)
extractOptions.IsExtractAllText = True

# 遍历每一页并提取文本
for i in range(doc.Pages.Count):
    page = doc.Pages.get_Item(i)
    textExtractor = PdfTextExtractor(page)
    text = textExtractor.ExtractText(extractOptions)
    all_text += text + "\n"

# 将提取的文本写入文件
with open("output/Extracted.txt", "w", encoding="utf-8") as file:
    file.write(all_text)

doc.Close()

自定义文本提取设置

Spire.PDF for Python 提供了多种灵活的文本提取选项,适用于不同场景下的 PDF 内容处理需求。例如,开发者可按页提取文本、限定区域提取内容、提取时过滤隐藏文字,还能获取文本在页面中的坐标位置与尺寸信息,便于精确定位与结构分析。

提取指定页面的文本

通过指定页面索引,开发者可以直接提取目标页的文本,而无需循环遍历整个文档。这种方式可以提高处理效率,适用于仅需要处理多页文档中的特定部分的场景。

  • Python
from spire.pdf.common import *
from spire.pdf import *

# 创建 PdfDocument 对象
doc = PdfDocument()

# 加载 PDF 文件
doc.LoadFromFile("C:/Users/Administrator/Desktop/in.pdf")

# 启用完整文本提取
extractOptions = PdfTextExtractOptions()
extractOptions.IsExtractAllText = True

# 获取第 1 页
page = doc.Pages.get_Item(0)

# 创建 PdfTextExtractor 对象
textExtractor = PdfTextExtractor(page)

# 提取文本
text = textExtractor.ExtractText(extractOptions)

# 写入文件
with open("output/Extracted.txt", "w", encoding="utf-8") as file:
    file.write(text)

doc.Close()

Python获取PDF指定页的文本内容

获取指定区域的文本

获取指定区域的文本可以帮助用户精准提取所需内容,避免处理无关信息。您可以定义一个矩形区域,只提取该区域内的文本。

  • Python
from spire.pdf.common import *
from spire.pdf import *

# 创建 PdfDocument 对象
doc = PdfDocument()

# 加载 PDF 文件
doc.LoadFromFile("C:/Users/Administrator/Desktop/in.pdf")

# 获取第 1 页
page = doc.Pages[0]

# 创建 PdfTextExtractor 对象
textExtractor = PdfTextExtractor(page)

# 创建提取选项并设置提取区域
extractOptions = PdfTextExtractOptions()
extractOptions.ExtractArea = RectangleF(90.0, 220.0, 770.0, 130.0)

# 提取文本
text = textExtractor.ExtractText(extractOptions)

# 写入文件
with open("output/ExtractedArea.txt","w", encoding="utf-8") as file:
    file.write(text)

doc.Close()

Python获取PDF特定页面区域内的文本内容

提取时忽略隐藏文本

某些 PDF 包含隐藏或不可见的文本,例如为辅助功能或 OCR 层添加的内容。如果您只想提取对用户可见的内容,可以选择忽略这些隐藏文本。

  • Python
from spire.pdf.common import *
from spire.pdf import *

# 创建 PdfDocument 对象
doc = PdfDocument()

# 加载 PDF 文件
doc.LoadFromFile("C:/Users/Administrator/Desktop/in.pdf")

# 设置提取选项以忽略隐藏文本
extractOptions = PdfTextExtractOptions()
extractOptions.IsShowHiddenText = False

# 获取第 1 页
page = doc.Pages[0]

# 创建 PdfTextExtractor 对象
textExtractor = PdfTextExtractor(page)

# 提取文本
text = textExtractor.ExtractText(extractOptions)

# 写入文件
with open("put/ExcludeHiddenText.txt", "w",encoding="utf-8") as file:
    file.write(text)

doc.Close()

提取文本及其位置(坐标)和尺寸信息

除了获取文本内容外,Spire.PDF还支持提取其在页面中的位置坐标和尺寸信息,以便进行精确批注、内容定位或页面结构分析。

  • Python
from spire.pdf.common import *
from spire.pdf import *

# 创建 PdfDocument 对象
doc = PdfDocument()

# 加载 PDF 文件
doc.LoadFromFile("C:/Users/Administrator/Desktop/in.pdf")

# 遍历所有页面
for i in range(doc.Pages.Count):
    page = doc.Pages[i]

    # 为当前页面创建 PdfTextFinder 对象
    finder = PdfTextFinder(page)

    # 查找所有文本片段
    fragments = finder.FindAllText()

    print(f"第 {i + 1} 页:")

    # 遍历文本片段并获取其在页面的位置和尺寸
    for fragment in fragments:
        text = fragment.Text
        rects = fragment.Bounds

        print(f'文本:"{text}"')

        for rect in rects:
            print(f"位置:({rect.X}, {rect.Y}),尺寸:({rect.Width} x {rect.Height})")

        print()

doc.Close()

总结

借助 Spire.PDF for Python,开发者可以高效、灵活地从 PDF 文件中提取文本。无论是解析整个文档,还是提取特定页面或区域的内容,该库都提供了强大且简便的解决方案。通过自动化文本提取,您可以显著提升工作效率,优化信息管理流程,并为后续的数据分析与业务决策提供有力支持。

想掌握更多 PDF 处理技巧?欢迎查看 【Python PDF 处理全系列教程】。

常见问题解答(FAQs)

Q1:能否从加密的PDF文件中提取文本?

A1:可以。Spire.PDF for Python 支持在加载PDF时输入正确密码,从而打开受保护的PDF文件并提取其中的文本内容。

Q2:是否支持批量处理多个PDF文件并提取文本?

A2:支持。您可以通过循环遍历指定文件夹中的多个PDF文件,然后利用 Spire.PDF for Python 从每个文件中提取文本。

Q3:Spire.PDF for Python 是否支持从PDF中提取图片和表格?

A3:虽然本教程主要讲解文本提取,Spire.PDF for Python 同样支持从 PDF 中 提取图片和 表格,满足多样化的内容处理需求。

Q4:能否从扫描(基于图片)的PDF中提取文本?

A4:扫描版PDF文本提取需要借助OCR(光学字符识别)技术。Spire.PDF for Python 本身不内置OCR功能,但可以结合 Spire.OCR 库实现 图片转文本的精准识别。

获取免费许可证

如需完整体验 Spire.PDF for Python 的全部功能,可 该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。(30 天无功能限制)。

Spire.Office 8.9.3 已发布。在该版本中,Spire.Presentation 8.9.4 支持设置幻灯片自动切换的时间以及设置和读取渐变停止样式的透明度和亮度;Spire.PDF 9.9.9 增强了 PDF 到图像以及 OFD 到 PDF 的转换;Spire.Doc 11.9.19 增强了 Word 和 HTML 到 PDF 的转换。此外,许多已知问题也在该版本中得到修复。详情请阅读以下内容。

该版本涵盖了最新版的 Spire.Doc,Spire.PDF,Spire.XLS,Spire.Email,Spire.DocViewer, Spire.PDFViewer,Spire.Presentation,Spire.Spreadsheet, Spire.OfficeViewer, Spire.Barcode, Spire.DataExport。

版本信息如下:

获取Spire.Office 8.9.3请点击:

https://www.e-iceblue.cn/Downloads/Spire-Office-NET.html


Spire.Presentation

新功能:

问题修复:


Spire.PDF

问题修复:


Spire.Doc

问题修复:

尊敬的顾客朋友:

2023国庆节和中秋节将至,成都冰蓝科技有限公司全体职工在此向您致以最诚挚的祝福与问候!为满足节日期间的客户需求,我司就放假安排做出如下通知:

因放假给您带来的不便,我们深表歉意。

感谢您一直以来的支持与合作,祝您度过一个愉快的假期!

邮件地址:

Spire.Presentation for Python 8.9.0 已发布。本次更新新增了在将形状保存为图片时设置自定义DPI的方法。此外,该版本还修复了重置幻灯片尺寸时程序抛出“System.NullReferenceException”的问题。详情请阅读以下内容。

新功能:

问题修复:


获取 Spire.Presentation for Python 8.9.0请点击:

https://www.e-iceblue.cn/Downloads/Spire-Presentation-Python.html

Spire.Presentation 8.9.4 已发布。本次更新新增支持设置幻灯片自动切换的时间以及设置和读取渐变停止样式的透明度和亮度。同时,该版本还增强了幻灯片到图片的转换。一些已知问题也在该版本种得到修复,如获取多边形的角坐标集合不完整的问题。详情请阅读以下内容。

新功能:

问题修复:


获取Spire.Presentation 8.9.4请点击:

https://www.e-iceblue.cn/Downloads/Spire-Presentation-NET.html

Excel 是一种广泛用于组织、分析和展示数据的电子表格文件。具有与 Excel 文件进行交互编程的能力是在软件应用程序中实现 Excel 功能自动化的关键。具体来说,了解如何通过代码创建新的 Excel 文档、从现有文档中检索信息以及按要求更新或修改数据将非常有帮助。本文将演示如何使用 Spire.XLS for Python 在 Python 中创建、读取或更新 Excel 文件。

安装 Spire.XLS for Python

本方案需要 Spire.XLS for Python 和 plum-dispatch v1.7.4。您可以通过以下 pip 命令将它轻松安装到 Windows 中。

pip install Spire.XLS

果您不清楚如何安装,请参考此教程: 如何在 Windows 中安装 Spire.XLS for Python

使用 Python 创建 Excel 文档

Spire.XLS for Python 提供了各种可用于创建和编辑 Excel 文档的类和接口。下表列举了一些本文中用到的重要类、属性和方法。

成员 描述
Workbook 类 表示 Excel 工作簿模型。
Workbook.Worksheets.Add() 方法 添加工作表到工作簿。
Workbook.SaveToFile() 方法 将工作簿保存为 Excel 文档。
Worksheet 类 表示工作簿中的工作表。
Worksheet.Range 属性 获取工作表中的特定单元格或单元格区域。
Worksheet.Range.Text 属性 获取或设置单元格的文本值。
Worksheet.Rows 属性 获取工作表中行的集合。
CellRange 类 表示工作表中的单元格或单元格区域。

以下是使用 Spire.XLS for Python 创建一个新的 Excel 文档的步骤。

  • Python
from spire.xls import *
from spire.xls.common import *

# 创建Workbook对象
wb = Workbook()

# 删除默认工作表
wb.Worksheets.Clear()

# 添加一个工作表并命名
sheet = wb.Worksheets.Add("报价")

# 合并A1至G1单元格
sheet.Range["A1:G1"].Merge()

# 在A1中写入数据并设置格式
sheet.Range["A1"].Text = "活动费用报价表"
sheet.Range["A1"].HorizontalAlignment = HorizontalAlignType.Center
sheet.Range["A1"].VerticalAlignment = VerticalAlignType.Center
sheet.Range["A1"].Style.Font.IsBold = True
sheet.Range["A1"].Style.Font.Size = 13

# 设置第一行的行高
sheet.Rows[0].RowHeight = 30

# 在特定单元格中写入数据
sheet.Range["A2"].Text = "编号"
sheet.Range["B2"].Text = "项目"
sheet.Range["C2"].Text = "规格说明"
sheet.Range["D2"].Text = "时间"
sheet.Range["E2"].Text = "数量"
sheet.Range["F2"].Text = "单价"
sheet.Range["G2"].Text = "价格"

sheet.Range["A3"].Text = "1"
sheet.Range["B3"].Text = "钢架舞台"
sheet.Range["C3"].Text = "8*4米"
sheet.Range["D3"].Text = "1场"
sheet.Range["E3"].Text = "18平米"
sheet.Range["F3"].Text = "35元/平米"
sheet.Range["G3"].Text = "630.00"

sheet.Range["A4"].Text = "2"
sheet.Range["B4"].Text = "舞台围布"
sheet.Range["C4"].Text = "20公分"
sheet.Range["D4"].Text = "1场"
sheet.Range["E4"].Text = "16米"
sheet.Range["F4"].Text = "8元/米"
sheet.Range["G4"].Text = "128.00"

sheet.Range["A5"].Text = "3"
sheet.Range["B5"].Text = "背景架"
sheet.Range["C5"].Text = "8*4米"
sheet.Range["D5"].Text = "1场"
sheet.Range["E5"].Text = "12平米"
sheet.Range["F5"].Text = "35元/平米"
sheet.Range["G5"].Text = "420.00"

sheet.Range["A6"].Text = "4"
sheet.Range["B6"].Text = "条幅"
sheet.Range["C6"].Text = "90公分宽"
sheet.Range["D6"].Text = "永久"
sheet.Range["E6"].Text = "10米"
sheet.Range["F6"].Text = "10元/米"
sheet.Range["G6"].Text = "100.00"

sheet.Range["A7"].Text = "5"
sheet.Range["B7"].Text = "地毯"
sheet.Range["C7"].Text = "全新红地毯"
sheet.Range["D7"].Text = "永久"
sheet.Range["E7"].Text = "100米(暂定)"
sheet.Range["F7"].Text = "7元/米"
sheet.Range["G7"].Text = "700.00"

# 设置指定单元格区域的行高
sheet.Range["A2:G7"].RowHeight = 15

# 设置列宽
sheet.SetColumnWidth(2, 13)
sheet.SetColumnWidth(3, 12)
sheet.SetColumnWidth(5, 14)
sheet.SetColumnWidth(6, 12)

# 设置指定单元格区域的边框样式
sheet.Range["A2:G7"].BorderAround(LineStyleType.Medium)
sheet.Range["A2:G7"].BorderInside(LineStyleType.Thin)
sheet.Range["A2:G2"].BorderAround(LineStyleType.Medium)
sheet.Range["A2:G7"].Borders.KnownColor = ExcelColors.Black

# 保存为 .xlsx 文件
wb.SaveToFile("创建Excel文档.xlsx", FileFormat.Version2016)

Python 创建、读取或更新 Excel 文档

使用 Python 读取 Excel 数据

Worksheet.Range.Value 属性能以字符串形式返回单元格中的数字值或文本值。要获取整个 Excel 工作表或某个单元格区域中的数据,可循环遍历其中的单元格。以下是使用 Spire.XLS for Python 读取 Excel 工作表中数据的步骤。

  • Python
from spire.xls import *
from spire.xls.common import *

# 创建Workbook对象
wb = Workbook()

# 加载Excel文档
wb.LoadFromFile("创建Excel文档.xlsx");

# 获取第一张工作表
sheet = wb.Worksheets[0]

# 获取包含数据的单元格区域
locatedRange = sheet.AllocatedRange

# 遍历各行
for i in range(len(sheet.Rows)):

    # 遍历各列
    for j in range(len(locatedRange.Rows[i].Columns)):

        # 获取指定单元格的数据
        print(locatedRange[i + 1, j + 1].Value + "  ", end='')
        
    print("")

Python 创建、读取或更新 Excel 文档

使用 Python 更新 Excel 文档

要更改某个单元格的值,只需通过 Worksheet.Range.Value 属性为其重新赋值即可。具体步骤如下。

  • Python
from spire.xls import *
from spire.xls.common import *

# 创建Workbook对象
wb = Workbook()

# 加载Excel文档
wb.LoadFromFile("创建Excel文档.xlsx");

# 获取第一张工作表
sheet = wb.Worksheets[0]

# 更改指定单元格的值
sheet.Range["A1"].Value = "修改数据"

# 保存结果文件
wb.SaveToFile("更新Excel.xlsx", ExcelVersion.Version2016)

Python 创建、读取或更新 Excel 文档

申请临时 License

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。