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

Spire.Cloud 纯前端文档控件

使用 Spire.XLS 将 DataTable 导出为 Excel 的示例

在 C# 中将 DataTable 导出为 Excel 文件,是 .NET 开发中常见的任务,广泛应用于报表生成、日志导出、系统间数据共享等场景。通过使用独立的组件库,开发者可以轻松将 DataTable 数据写入 Excel 文件,并应用格式设置,生成专业、可直接使用的文档,无需复杂配置或依赖第三方办公软件。

本文将介绍如何使用 Spire.XLS for .NET 将 DataTable 导出为 Excel(.xlsx/.xls)文件,包含数据创建、导出保存、格式设置等实用步骤。

文章目录:

安装和配置 Spire.XLS

开始之前,请确保你的项目中已添加 Spire.XLS for .NET

通过 NuGet 安装 Spire.XLS:

Install-Package Spire.XLS

Spire.XLS 支持 .NET Framework、.NET Core、.NET 6/7+ 以及 ASP.NET 项目,且无需安装 Microsoft Office

分步操作:C# 将 DataTable 导出为 Excel 文件

下面的步骤将演示如何使用 Spire.XLS 将 DataTable 导出为 Excel 文件,包含数据准备、文件保存、网页流导出以及格式设置等内容。

第一步:创建示例 DataTable

先创建一个包含多列的 DataTable

// 创建数据表
DataTable dt = new DataTable("员工信息");

// 添加列
dt.Columns.Add("员工编号", typeof(int));
dt.Columns.Add("姓名", typeof(string));
dt.Columns.Add("部门", typeof(string));
dt.Columns.Add("入职日期", typeof(DateTime));
dt.Columns.Add("工资", typeof(double));
dt.Columns.Add("是否全职", typeof(bool));
dt.Columns.Add("奖金系数", typeof(decimal));

// 添加数据行
dt.Rows.Add(1001, "张伟", "人事部", new DateTime(2021, 5, 10), 55000.5, true, 0.05m);
dt.Rows.Add(1002, "李娜", "技术部", new DateTime(2020, 11, 23), 72000.0, false, 0.03m);
dt.Rows.Add(1003, "王强", "财务部", new DateTime(2019, 8, 15), 63000.75, true, 0.07m);
dt.Rows.Add(1004, "赵敏", "市场部", new DateTime(2022, 3, 8), 48800.0, true, 0.06m);

此处为演示用示例数据,实际使用中可绑定任意业务生成的 DataTable。

第二步:导入 DataTable 并保存为 Excel 文件

将 DataTable 导入到工作表中,并保存为 Excel 文件:

Workbook workbook = new Workbook();
workbook.Worksheets.Clear();
Worksheet sheet = workbook.Worksheets.Add(dt.TableName);

// 从 A1 单元格开始插入数据表
sheet.InsertDataTable(dt, true, 1, 1);

// 保存为 .xlsx 文件(推荐)
workbook.SaveToFile("员工信息.xlsx", FileFormat.Version2016);

// 保存为 .xls 文件(旧格式)
workbook.SaveToFile("员工信息.xls", FileFormat.Version97to2003);

说明:

  • Workbook 表示整个 Excel 文件。
  • InsertDataTable 方法将 DataTable 内容映射到 Excel 表格中。
  • SaveToFile 方法用于保存文件,支持多种 Excel 格式。

导出效果示意图:

导出的 Excel 文件预览

第三步:在 ASP.NET 中以流形式导出

在 Web 项目中,通常需要将 Excel 文件直接以下载流的方式返回:

MemoryStream stream = new MemoryStream();
workbook.SaveToStream(stream, FileFormat.Version2013);
stream.Position = 0;

将此 MemoryStream 返回到 ASP.NET 控制器中,即可触发浏览器下载。

更多 Excel 文件操作技巧可参考:如何在 C# 中创建与操作 Excel 文件

设置导出文件的格式与样式

若希望导出的 Excel 文件更具可读性和专业感,可以对内容进行格式化:

// 设置表头样式
CellRange header = sheet.Rows[0];
header.Style.Font.IsBold = true;
header.Style.Font.FontName = "微软雅黑";
header.Style.Font.Size = 13;
header.Style.Color = Color.LightGray;
header.Style.Borders[BordersLineType.EdgeBottom].LineStyle = LineStyleType.Thick;

// 设置数据行样式
for (int i =  1; i < sheet.Rows.Length; i++)
{
    CellRange dataRow = sheet.Rows[i];
    dataRow.Style.Font.FontName = "黑体";
    dataRow.Style.Font.Size = 11;
    dataRow.BorderInside();
}

// 设置日期列的显示格式
CellRange dateColumn = sheet.Range[2, 4, sheet.Rows.Length + 1, 4];
dateColumn.Style.NumberFormat = "yyyy-mm-dd";

// 自动调整列宽
sheet.AllocatedRange.AutoFitColumns();

关键方法说明:

  • Style: 控制字体、颜色、边框、数字格式等;
  • AutoFitColumns(): 自动调整列宽以适应内容;
  • NumberFormat: 格式化日期、货币等数据类型;
  • BorderInside(): 添加内边框,增强表格可读性。

格式化效果示意图:

带格式的 Excel 文件预览

更多数字格式设置技巧请参阅:在 C# 中设置 Excel 单元格数字格式

常见问题及解决方案

问题描述 解决方法
文件无法打开或提示损坏 检查是否正确关闭流,且文件后缀与格式匹配
特殊字符或中文乱码 确保字符串为 UTF-8 编码,字体设置支持目标语言
列宽过窄导致显示不全 使用 AutoFitColumns() 自动调整,或手动设置 ColumnWidth

总结

借助 Spire.XLS,开发者可轻松地将 C# 中的 DataTable 导出为 Excel 文件,支持 .xls 和 .xlsx 两种格式,且无需依赖 Office 环境。无论是桌面应用还是 Web 系统,该方法都能快速生成格式良好的 Excel 报表。

如需评估完整版功能,可申请免费临时授权

常见问答(FAQ)

Q1:如何将 DataTable 转换为 Excel 文件?

使用 sheet.InsertDataTable() 将 DataTable 写入工作表,然后调用 workbook.SaveToFile() 保存文件。

Q2:有没有免费的 C# Excel 导出组件?

有,Free Spire.XLS for .NET 是一个独立库,可在无需安装 Office 的前提下创建与导出 Excel 文件。

Q3:能否在 ASP.NET 中导出 DataTable 为 Excel?

可以,在 ASP.NET 控制器中生成工作簿,并以流的方式返回,实现下载功能。

Q4:.xlsx 与 .xls 有何区别?

.xlsx 是较新的格式,兼容 Excel 2007 及更高版本;.xls 为旧版格式(Excel 97-2003),行数限制为 65536 行。

光学字符识别(OCR)已成为现代软件开发中不可或缺的关键技术,它能让计算机将图像、扫描文档等各类文件转换为可编辑、可搜索的文本形式。在 Java 开发领域,集成 OCR 功能可实现强大的文档处理、高效的数据提取及便捷的辅助功能。本文章将详细介绍如何借助 Spire.OCR for Java 库在 Java 环境中实现 OCR 功能,充分利用其高级特性从图像中提取文本,包括带位置坐标和不带位置坐标两种示例。

目录:

为何选择 Java 实现 OCR?

OCR 技术的核心是将图像文本转化为机器可识别的格式。对 Java 开发者而言,其价值体现在:

  • 自动化处理发票、收据等单据
  • 将纸质档案、表单数字化存档
  • 实现扫描文档的文本搜索功能
  • 提取带空间坐标的结构化数据

Spire.OCR for Java 凭借以下优势成为优选:

  • 先进的 OCR 算法确保准确的文本识别
  • 支持多种图片格式与多语言识别
  • 批量处理多个图像,提高效率
  • 易于集成到各类 Java 应用

环境搭建与配置

步骤 1:将 Spire.OCR 添加到项目中

在 pom.xml 中添加以下内容:

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.ocr</artifactId>
        <version>2.1.1</version>
    </dependency>
</dependencies>

或者,您可以下载 Spire.OCR for Java 库,然后将其添加到 Java 项目中。

2. 下载 OCR 模型

Spire.OCR for Java 依赖预训练模型来提取图像文本。根据操作系统下载对应的 OCR 模型文件:

下载后,将文件解压缩到指定目录(例如,F:\win-x64)

使用 Java 从图片中提取文本

以下是一个基本的文本提取示例,即从图像中读取文本并将其保存到 .txt 文件。

适用场景:

  • 将书籍、报纸等印刷资料转为数字文本存档
  • 将图像(如屏幕截图、表情包、标牌)转换为可共享、可编辑的文本

读取图片中文本的 Java 代码:

import com.spire.ocr.*;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

public class ocrJava {
    public static void main(String[] args) throws Exception {
        // 创建 OcrScanner 类的实例
        OcrScanner scanner = new OcrScanner();

        // 创建 ConfigureOptions 类的实例
        ConfigureOptions configureOptions = new ConfigureOptions();

        // 设置 OCR 模型的路径
        configureOptions.setModelPath("F:\\win-x64");

        // 设置文本识别的语言
        configureOptions.setLanguage("Chinese");

        // 将配置选项应用于扫描器
        scanner.ConfigureDependencies(configureOptions);

        // 从图像中提取文本
        scanner.scan("示例.png");
        String text = scanner.getText().toString();

        // 将提取的文本保存到文本文件
        try (BufferedWriter writer = new BufferedWriter(new FileWriter("OCR结果.txt"))) {
            writer.write(text);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

核心流程解析:

  1. 初始化组件:创建 OcrScanner 实例处理 OCR 操作,ConfigureOptions 管理配置

  2. 配置参数:

    • setModelPath():指定 OCR 模型文件的位置

    • setLanguage():设置识别语言(支持英文、法语等)

  3. 处理图像:scan() 方法对目标图像执行 OCR 识别

  4. 导出文本:getText() 方法获取提取到的文本

输出:

提取图片中文本到TXT文件

使用 Java 从图片中提取带坐标的文本

在处理发票、表单等结构化文档时,文本的位置信息至关重要。Spire.OCR for Java 支持提取文本块的边界框坐标,满足精准定位需求。

适用场景:

  • 自动化发票处理(定位金额、日期等关键信息)
  • 表单数据提取(按位置识别对应字段内容)

提取带坐标文本的 Java 代码:

import com.spire.ocr.*;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;

public class ExtractWithCoordinates {
    public static void main(String[] args) throws Exception {
        // 创建 OcrScanner 类的实例
        OcrScanner scanner = new OcrScanner();

        // 创建 ConfigureOptions 类的实例
        ConfigureOptions configureOptions = new ConfigureOptions();

        // 设置 OCR 模型的路径
        configureOptions.setModelPath("F:\\win-x64");

        // 设置文本识别的语言
        configureOptions.setLanguage("Chinses");

        // 将配置选项应用于扫描器
        scanner.ConfigureDependencies(configureOptions);

        // 从图像中提取文本
        scanner.scan("报价单.png");
        IOCRText text = scanner.getText();

        // 创建一个列表来存储信息
        List<String> results = new ArrayList<>();

        // 遍历检测到的每个文本块
        for (IOCRTextBlock block : text.getBlocks()) {
            // 将提取的文本和坐标添加到列表中
            results.add("文本: " + block.getText());
            results.add("坐标: " + block.getBox());
            results.add("---------");
        }

        // 保存到文本文件
        try {
            Files.write(Paths.get("提取文本与坐标.txt"), results);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

功能亮点:

  1. 文本和坐标提取:

    • 遍历图像中检测到的文本块。
    • getText():返回包含识别文本的 IOCRText 对象
    • getBox ():返回文本块的边界框坐标 [x, y, 宽度,高度]
  2. 高效文件写入:

    • 使用 Java NIO 的 Files.write 方法,提升文件写入效率
    • 结果清晰区分文本与坐标,便于后续解析

输出结果:

提取图片中的文本及文本坐标信息

OCR 进阶技巧

1. 自动旋转图片

处理倾斜或旋转的图片时,启用 SetAutoRotate() 方法可自动将图像旋转到正确的位置:

ConfigureOptions configureOptions = new ConfigureOptions();
configureOptions.SetAutoRotate(true); // 自动校正图像角度

2. 保留原始布局

如果需要保留图片中的原始视觉布局(例如表格、多列排版等),初始化 VisualTextAligner 类来保持文本格式:

// 对齐识别文本,还原原始布局
VisualTextAligner visualTextAligner = new VisualTextAligner(scanner.getText());
String scannedText = visualTextAligner.toString();

常见问题(支持的语言和图片格式)

问题 1:Spire.OCR for Java 支持哪些图片格式?

:Spire.OCR for Java 支持所有常见格式:

  • PNG
  • JPEG/JPG
  • BMP
  • TIFF
  • GIF

问题 2:Spire.OCR for Java 支持哪些语言?

:支持多种语言:

  • 英语(默认)
  • 中文(简体和繁体)
  • 日语
  • 韩语
  • 德语
  • 法语

问题 3:如何提高 OCR 识别准确性?

:要提高准确性:

  • 使用高质量图像(300+ DPI,光线充足)
  • 扫描前对图像进行预处理(调整对比度,去噪)
  • 正确设置识别语言

问题 4:Spire.OCR for Java 能否在从扫描 PDF 文件中提取文本?

:此任务需要结合 Spire.PDF for Java 实现,先将 PDF 转换为图片或从扫描的 PDF 中提取图片,然后使用上述 Java 示例从图片中获取文本。

结论

Spire.OCR for Java 为开发者提供了便捷的图片文本提取方案,从基础的文本识别到带坐标的精准提取,再到自动旋转、布局保留等高级功能,能满足多样化的 OCR 需求。通过本文的指导,你可快速将 OCR 功能集成到项目中,实现文档自动化处理、数据提取等实用功能,提升应用的竞争力。无论是处理日常办公文档,还是开发专业的文字识别系统,Spire.OCR for Java 都能助你高效实现图片到文本的转化。

点击申请 30 天的试用许可证,即可无限制地使用 Java 进行 OCR 处理。

Spire.Office 10.7.0 更新已发布。在该版本中,Spire.Doc 新增支持多项新功能,如加载 EPUB 文件进行处理和创建组合图表;Spire.PDF 支持提取 PDF 自定义数据,同时增强了 PDF 到 Excel 的转换效果;Spire.XLS 和 Spire.Presentation 支持加载 Markdown 格式文档。此外,大量已知问题在该版本中成功修复。详情请阅读以下内容。

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

版本信息如下:


获取Spire.Office 10.7.0,请点击:

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

Spire.Doc

新功能:

问题修复:

Spire.PDF

新功能:

问题修复:

Spire.XLS

新功能:

问题修复:

Spire.Presentation

新功能:

问题修复:

C# 示例 - 转换 Markdown 到 PDF 和 Excel

Markdown 是一种设计简洁、易于书写和阅读的轻量级标记语言,使用纯文本语法即可实现内容格式化。凭借其良好的可读性和跨平台兼容性,Markdown 被广泛应用于技术文档撰写、博客发布、协作文稿等多个场景,深受开发者和内容创作者的喜爱。

然而,Markdown 文件(.md)在正式发布或用于数据分析、报表制作时,常常需要转换为更具通用性和易读性的格式,如 PDF 和 Excel。这不仅有助于更好地展示内容,还方便内容的归档、打印和二次编辑。

本教程将系统讲解如何利用 C# 语言结合 Spire.XLS for .NET 库,实现 Markdown 文件向 PDF 和 Excel 格式的高效转换

目录

为什么要将 Markdown 转换为 PDF 和 Excel?

将 Markdown 文件转换为 PDF 和 Excel 格式,能够有效提升文档的展示效果和应用价值,具体原因包括:

  • 专业的格式排版
    Markdown 适合快速编写和草拟内容,但在正式发布时,PDF 格式提供统一且规范的排版,确保文档在各种设备和平台上保持一致的视觉效果。
  • 便捷的数据分析
    Excel 拥有强大的数据处理和分析功能。将 Markdown 中的表格或数据导入 Excel 后,用户可以轻松进行排序、筛选、统计及图表生成,支持更深入的数据应用。
  • 广泛的共享与传播
    PDF 具备跨平台兼容性,便于打印和电子传输,能保持文档格式不变,确保接收方获得与原文档一致的阅读体验。
  • 提升内容的兼容性
    并非所有用户都熟悉 Markdown 语法,转换为 PDF 和 Excel 能降低阅读门槛,使内容更容易被不同背景和需求的受众理解和使用。
  • 支持更多附加功能
    PDF 格式支持添加水印、密码保护、注释等功能,增强文档的安全性和协作性,满足多样化的业务需求。

综上所述,Markdown 转换为 PDF 和 Excel 不仅满足了格式美观与数据处理的双重需求,还大幅提升了文档的实用性和传播效果,适应了不同场景下的多样化应用。

准备工作(开发环境设置与类库安装)

在开始将 Markdown 文件转换为 PDF 或 Excel 之前,请确保您的开发环境已完成以下配置:

  • 安装 .NET Framework 或 .NET Core
    项目需基于 .NET 平台开发,可根据需要选择 .NET Framework 或 .NET Core。
  • 安装 Spire.XLS for .NET
    Spire.XLS 是一款功能全面的 Excel 组件,支持直接加载 Markdown 文档,并将其导出为 PDF 或 Excel 等格式,无需依赖 Microsoft Office 或其他软件。
    同时,它还提供丰富的 Excel 处理功能,如数据透视表图表生成、单元格格式设置等 –> 了解更多功能详情

通过 NuGet 安装 Spire.XLS

在项目中打开 NuGet 包管理器控制台,执行以下命令通过 NuGet 安装 Spire.XLS:

Install-Package Spire.XLS

安装完成后,即可使用组件提供的 API 实现 Markdown 的读取与格式转换功能。

如何使用 C# 将 Markdown 转换为 PDF:详细步骤

要在 C# 中将 Markdown 文件转换为 PDF,请按照以下步骤操作:

第一步:加载 Markdown 文件

创建 Workbook 实例并加载 .md 文件:

Workbook workbook = new Workbook();
workbook.LoadFromMarkdown("测试.md");

该方法会自动将 Markdown 文件中的文本、标题、表格等元素解析为 Spire.XLS 支持的工作簿结构,便于后续操作。

第二步:设置转换参数(可选)

为获得更理想的输出效果,可配置转换参数。例如,启用整页适配功能,使内容在 PDF 中自动适应页面宽度:

workbook.ConverterSetting.SheetFitToPage = true;

这有助于避免内容换页不当或显示不完整的问题,提升排版效果。

第三步:导出为 PDF 文件

调用 SaveToFile 方法,将工作簿保存为 PDF 格式:

workbook.SaveToFile("输出.pdf", FileFormat.PDF);

生成的 PDF 文件将保留 Markdown 的基本格式和内容结构,适合用于阅读、打印或分发。

使用 Spire.XLS 在 C# 中将 Markdown 文件转换为 PDF的 输出效果

如何使用 C# 将 Markdown 转换为 Excel:详细步骤

在将 Markdown 内容加载到工作簿后,可将其导出为 Excel 文件。例如:

导出为 Excel 97-2003 格式(.xls)

workbook.SaveToFile("输出.xls", ExcelVersion.Version97to2003);

导出为 Excel 2016 格式(.xlsx)

workbook.SaveToFile("输出.xlsx", ExcelVersion.Version2016);

您可根据目标平台的兼容性需求,选择合适的 Excel 版本进行导出。生成的 Excel 文件将保留 Markdown 中的表格和结构化数据,便于后续的数据处理与分析。

使用 C# 和 Spire.XLS 将 Markdown 内容转换为 Excel 表格的输出效果

完整示例:C# 实现 Markdown 同时转换为 PDF 和 Excel

以下是一个完整的示例代码,展示如何使用 C# 和 Spire.XLS 在一个项目中同时将 Markdown 文件转换为 PDF 和 Excel 格式:

using Spire.Xls;

namespace MarkdownToPdfAndExcel
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 初始化工作簿
            Workbook workbook = new Workbook();

            // 加载 Markdown 文件内容
            workbook.LoadFromMarkdown("测试.md");

            // 设置整页适配(可选)
            workbook.ConverterSetting.SheetFitToPage = true;

            // 导出为 PDF
            workbook.SaveToFile("输出.pdf", FileFormat.PDF);

            // 导出为 xls(Excel 97-2003 格式)
            workbook.SaveToFile("输出.xls", ExcelVersion.Version97to2003);

            // 导出为 xlsx(Excel 2016 格式)
            workbook.SaveToFile("输出.xlsx", ExcelVersion.Version2016);

            workbook.Dispose();
        }
    }
}

Markdown 转换实用技巧

在使用 C# 和 Spire.XLS 将 Markdown 文件转换为 PDF 和 Excel 格式时,掌握以下技巧可以显著提升转换效果与效率:

  • 确保文件编码为 UTF-8
    在处理包含中文、特殊符号或其他非 ASCII 字符的 Markdown 文件时,建议使用 UTF-8 编码,以避免出现乱码或字符异常的问题。
  • 规范编写表格语法
    为确保 Markdown 表格在导出为 Excel 时结构清晰,建议使用统一的竖线(|)分隔列,避免语法不规范造成转换异常或数据错位。
  • 一次加载,多格式输出
    为提高执行效率,建议将 Markdown 文件加载至内存后,再同时导出为 PDF、Excel 等多个格式,避免重复解析,尤其适合批量处理场景。
  • 选择合适的 Excel 输出格式 根据目标用户使用的 Excel 版本选择合适的导出格式,例如 .xls 适用于旧版 Excel 97–2003,.xlsx 适用于Excel 2007 及以上版本。选择正确的版本有助于确保文件兼容性和功能完整性。

总结

通过 C# 结合 Spire.XLS 库将 Markdown 转换为 PDF 和 Excel,不仅简化了文档格式统一与内容分发的流程,还显著提升了数据处理和信息展示的灵活性。PDF 格式适用于正式发布与归档,Excel 格式则便于进一步分析与计算,两者兼顾实用性与可扩展性。

该方案无需依赖 Office 环境,代码实现简洁,适用于技术写作、报表生成、内容管理系统集成等多种应用场景,是构建自动化文档处理流程的理想选择。

常见问题(FAQ)

Q1:可以批量转换多个 Markdown 文件吗?

A1:可以。您可以通过遍历文件夹中的多个 Markdown 文件,依次加载并将其导出为 PDF 或 Excel,实现批量转换处理。

Q2:使用 Spire.XLS 是否需要安装 Microsoft Office?

A2:不需要。Spire.XLS 是一个独立的 .NET 类库,完全无需依赖 Microsoft Office 或 Excel,即可实现文档加载、编辑和导出功能。

Q3:Spire.XLS 是免费的吗?

A3:Spire.XLS 提供免费版本,适用于轻量级开发与功能测试。但如需使用完整功能(如更多文档页数、商业用途支持等),建议使用商业版本。

获取免费许可

如需完整体验 Spire.XLS for .NET 的全部功能而不受评估限制,可该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。 30 天免费试用许可证。

Python示例 - 提取Word文档内容

在现代办公场景中,Word文档已成为信息存储与交流的重要载体,承载着关键的业务数据、结构化表格、可视化图表以及协作批注等重要内容。面对日益增长的文档处理需求,传统的人工操作方式已难以满足效率与准确性的双重标准。采用Python实现Word文档内容的自动化解析,不仅能显著提升处理效率、降低人为错误率,还能实现数据集成、内容迁移及智能分析等多种应用。

本文将详细介绍如何使用 Spire.Doc for Python在 Python 中读取 Word 文档(包括 .doc 和 .docx 格式),并演示如何提取文本、图片、表格、批注、列表以及文档的元数据等信息。无论您是进行文档内容抓取、自动化报告生成,还是开发文档解析工具,本教程都将提供清晰的代码示例和实用指导。

目录

为什么使用 Python 读取 Word 文档?

Python 作为一门灵活且功能强大的编程语言,广泛应用于自动化、数据处理及内容分析等领域。使用 Python 读取 Word 文档,可以实现以下重要应用:

  • 批量提取数据:从报告、合同、简历等文档中快速抓取关键信息,无需手工复制粘贴。
  • 结构化内容解析:将文本、表格和图片等内容整理成数据库或分析模型,便于后续处理。
  • 自动化工作流集成:将 Word 文档读取功能嵌入到 Web 服务、API 或后台系统,实现端到端自动化。
  • 支持多格式文档处理:同时兼容现代 .docx 和传统 .doc 文件,保证业务场景的全面覆盖。

安装 Python Word 文档解析库

要在 Python 中读取 Word 文档,首先需要安装支持 .doc 和 .docx 格式的解析库。Spire.Doc for Python 是一款功能完善且独立于 Microsoft Office 的第三方库,支持提取文本、图片、表格、批注、列表及元数据等多种内容。

通过以下命令即可安装 Spire.Doc:

pip install Spire.Doc

安装完成后,即可在 Python 代码中导入并使用 Spire.Doc 进行 Word 文档的读取和处理。

使用 Python 读取 Word 文档中文本

提取文本是解析 Word 文档的基础需求。根据不同场景,你可能需要获取整篇文档的全部文本,或仅针对特定节、段落进行读取。

获取整个文档的文本

在文档管理系统中,提取全文文本有助于建立搜索索引,使用户能够通过关键词快速定位文档内容,从而提升查询效率和使用体验。

Spire.Doc 提供了 Document.GetText() 方法,可一次性提取 Word 文档中的所有文字信息,涵盖正文、表格及列表等内容。

以下示例展示了如何加载 Word 文档,获取全文文本,并将其保存为独立的文本文件,便于后续处理与分析:

from spire.doc import *

# 创建Document对象
doc = Document()

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

# 获取文档所有文本
text = doc.GetText()

# 保存获取的文本为TXT文件
with open("output/提取文本.txt", "w", encoding="utf-8") as file:
file.write(text)

document.Close()

使用Python 和Spire.Doc for Python获取 Word 文档中的所有文本

获取特定节或段落的文本

在许多结构化文档(如报告、合同或说明书)中,内容通常被划分为多个节或段落。若只需提取文档中某一部分的文本信息,可以直接访问指定节,并逐段读取内容,实现更具针对性的处理。

以下示例展示了如何访问 Word 文档中的指定节,并提取其中所有段落的文本内容:

from spire.doc import *

# 加载 .docx 或 .doc 文件
document = Document()
document.LoadFromFile("示例.docx")

# 访问指定节
section = document.Sections[0]

# 获取该节段落文本
with open("output/节文本.txt", "w", encoding="utf-8") as file:
    for paragraph in section.Paragraphs:
        file.write(paragraph.Text + "\n")

document.Close()

使用 Python 读取 Word 文档中的特定元素

除了纯文本,Word 文档中还可能包含图片、表格、批注、列表及元数据等多种元素。Spire.Doc 提供丰富且便捷的接口,帮助开发者高效地提取这些内容,实现对文档结构和数据的全面访问。

提取图片

Word 文档中常包含图片元素,例如公司 Logo、插图、图表等。若需提取这些图片以便进行分析、存档或再利用,可通过遍历文档结构并识别图片对象(DocPicture)来实现。

以下是提取 Word 文档中所有图片并将其保存为本地文件的完整示例:

import queue
from spire.doc import *

# 创建Document对象
doc = Document()

# 加载Word文件
doc.LoadFromFile("示例.docx")

# 创建队列对象
nodes = queue.Queue()
nodes.put(doc)

# 创建列表
images = []

while nodes.qsize() > 0:
    node = nodes.get()

    # 遍历文档中的子对象
    for i in range(node.ChildObjects.Count):
        child = node.ChildObjects.get_Item(i)

        # 判断子对象是否为图片
        if child.DocumentObjectType == DocumentObjectType.Picture:
            picture = child if isinstance(child, DocPicture) else None
            dataBytes = picture.ImageBytes

            # 将图片数据添加到列表中
            images.append(dataBytes)
         
        elif isinstance(child, ICompositeObject):
            nodes.put(child if isinstance(child, ICompositeObject) else None)

# 遍历列表中的图片
for i, item in enumerate(images):
    fileName = "图片-{}.png".format(i)
    with open("output/Images/"+fileName,'wb') as imageFile:

        # 将图片写入指定路径
        imageFile.write(item)
doc.Close()

使用Python和Spire.Doc for Python从 Word 文档中提取图片

获取表格数据

在 Word 文档中,表格常用于组织结构化数据,如报表或物品清单。使用 Spire.Doc,开发者可以遍历文档中的所有表格,访问表格中的每个单元格,并提取单元格的内容。

以下代码展示了如何提取Word文档中所有表格的数据,并将结果保存为文本文件:

from spire.doc import *
import os

# 加载 Word 文档
document = Document()
document.LoadFromFile("示例.docx")

# 指定输出文件夹存在
output_dir = "output/Tables"
os.makedirs(output_dir, exist_ok=True)

# 遍历所有节并提取表格数据
for s in range(document.Sections.Count):
    section = document.Sections[s]
    tables = section.Tables

    for i in range(tables.Count):
        table = tables[i]
        table_data = ""

        for j in range(table.Rows.Count):
            row = table.Rows[j]

            for k in range(row.Cells.Count):
                cell = row.Cells[k]
                cell_text = ""

                for p in range(cell.Paragraphs.Count):
                    para_text = cell.Paragraphs[p].Text
                    cell_text += para_text + " "

                table_data += cell_text.strip()
                if k < row.Cells.Count - 1:
                    table_data += "\t"
            table_data += "\n"

        # 将提取的表格数据写入文本文件
        output_path = os.path.join(output_dir, f"Word表格_{s+1}_{i+1}.txt")
        with open(output_path, "w", encoding="utf-8") as output_file:
            output_file.write(table_data)

document.Close()

读取列表

Word 文档中的项目列表(如编号列表和项目符号列表)常用于展示条款、步骤或要点等结构化内容。借助 Spire.Doc,开发者可以轻松识别并提取文档中的列表。

以下代码示例展示了如何加载 Word 文件,查找所有列表项,并将项目编号(如数字或符号)和其对应的文本内容写入本地文本文件:

from spire.doc import *

# 加载 Word 文档
document = Document()
document.LoadFromFile("示例.docx")

# 创建文本文件,用于存放列表内容
with open("output/列表内容.txt", "w", encoding="utf-8") as output_file:
    # 遍历文档中的节
    for s in range(document.Sections.Count):
        section = document.Sections[s]
        # 遍历节中的段落
        for p in range(section.Paragraphs.Count):
            paragraph = section.Paragraphs[p]
            # 找到列表,提取其内容并保存至文本文件
            if paragraph.ListFormat.ListType != ListType.NoList:
                output_file.write(paragraph.ListText + paragraph.Text + "\n")

document.Close()

提取批注

Word 支持添加批注,用于提供修改建议或评论。通过访问 Comments 集合,可以获取文档中所有批注的信息,包括批注作者和具体内容,便于实现审阅流程的自动化管理。

以下代码展示了如何提取所有批注,包括批注作者与内容,并保存到文本文件中:

from spire.doc import *

# 加载 Word 文档
document = Document()
document.LoadFromFile("示例.docx")

# 创建文本文件,用于存放批注内容
with open("output/批注内容.txt", "w", encoding="utf-8") as output_file:
    # 遍历文档中的所有批注,获取每个批注的作者和内容
    for i in range(document.Comments.Count):
        comment = document.Comments[i]
        output_file.write(f"批注 {i + 1}:\n")
        output_file.write(f"作者:{comment.Format.Author}\n")

        comment_text = ""
        for j in range(comment.Body.Paragraphs.Count):
            paragraph = comment.Body.Paragraphs[j]
            comment_text += paragraph.Text + "\n"

        output_file.write(f"内容: {comment_text.strip()}\n\n")

document.Close()

获取元数据(文档属性)

Word 文档通常包含作者、标题、主题、关键字等元数据信息,这些数据保存在文档的 BuiltinDocumentProperties 属性中。提取这些属性有助于文档的归档管理、分类整理以及搜索优化。

以下示例代码展示了如何读取 Word 文档的标题、作者、主题等属性,并将其保存到本地文本文件:

from spire.doc import *

# 加载 Word 文档
document = Document()
document.LoadFromFile("示例.docx")

# 获取文档属性
props = document.BuiltinDocumentProperties

# 将文档属性信息写入到本地文本文件
with open("output/元数据.txt", "w", encoding="utf-8") as output_file:
    output_file.write(f"标题: {props.Title}\n")
    output_file.write(f"作者: {props.Author}\n")
output_file.write(f"主题: {props.Subject}\n")

document.Close()

总结

使用 Python 读取 Word 文档,不仅能够显著提升文档处理效率,还能实现数据提取与自动化工作的深度集成。通过 Spire.Doc for Python,开发者可以轻松完成 .doc 和 .docx 文件中的文本提取、表格读取、图片导出、批注解析、列表识别以及元数据获取等多种常见操作。

除了读取内容,Spire.Doc 还支持创建和编辑 Word 文档、设置样式格式、插入图片执行文档合并,以及将 Word 转换为 PDF图片等格式,满足从读取到输出的全流程需求,适用于报告生成、合同解析、批量文档处理等多种业务场景。

常见问题解答

Q1:Python 如何读取 Word(.doc/.docx)文档内容?

A1:可以使用 Spire.Doc for Python 来读取 Word 文件。该库支持加载 .doc 和 .docx 格式,并提取文档中的文本、图片、表格、批注等内容。

Q2:使用 Spire.Doc for Python 是否需要安装 Microsoft Office?
A2:不需要。Spire.Doc 是一款独立运行的 Word 处理库,无需安装 Microsoft Word 或 Office ,即可在 Python 项目中实现 Word 文件的读取与编辑功能。

Q3:除了读取 Word 内容,Spire.Doc 是否支持写入和生成 Word 文件?
A3:支持。Spire.Doc for Python 不仅可以读取 Word 文档内容,还支持以编程方式创建、编辑和保存 Word 文件。用户可以添加段落、设置样式、插入图片和表格,甚至将 Word 转换为 PDF 或图片格式,满足多样化的文档生成需求。

获取免费许可证

若要完整体验 Spire.Doc for Python 的全部功能而不受评估限制,可该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。 30 天免费试用许可证。

Spire.Office for Java 10.7.0 已正式发布。在该版本中,Spire.Doc for Java 支持双行合一功能;Spire.XLS for Java 支持 MarkerDesigner 使用 Array 数据;Spire.PDF for Java支持将 PDF 转换为 Markdown;Spire.OCR for Java 支持自动旋转图片。除此之外,一些在转换和操作Word、Excel、PDF和PPT文档时出现的问题也已成功被修复。更多新功能及问题修复详情如下。


获取Spire.Office for Java 10.7.0,请点击:

Spire.Office for Java 下载页面

Spire.Doc for Java

新功能:

问题修复:

Spire.XLS for Java

新功能:

问题修复:

Spire.PDF for Java

新功能:

调整:

问题修复:

Spire.Presentation for Java

问题修复:

Spire.OCR for Java

新功能:

问题修复:

Spire.PDF for Android via Java 10.6.8 现已发布。该版本支持从 PDF 中提取文本、查找和高亮文本,以及查找和替换文本。此外,还修复了与 PDF 加密相关的问题。更多详细信息见下文。

调整:

新功能:

问题修复:


获取 Spire.PDF for Android via Java 10.6.8请点击:

Spire.PDF for Android via Java 下载页面

Spire.Doc for Java 13.7.6 现已正式发布。最新版本支持双行合一功能,强化了 Word 转 PDF 的效果。此外,该版本还修复了一些已知问题,例如接受修订,内容控件内容不起作用的问题。更多详情请查阅下方内容。

新功能:

问题修复:


获取 Spire.Doc for Java 13.7.6 请点击:

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

使用Python创建PowerPoint

在自动化办公场景中,使用 Python 编程生成 PowerPoint 文档能显著提升工作效率,特别适用于定期报告、产品演示等需要快速产出标准化幻灯片的场景。通过脚本自动化处理,用户可以将精力集中在内容创作和视觉设计上,而无需反复进行繁琐的手动排版操作。

本教程将详细介绍如何使用 Spire.Presentation for PythonPython 中实现 PPT/PPTX 文件的自动化生成与编辑。该库为开发者提供了一套完整的 API 接口,支持对演示文稿进行全功能编程控制。

目录:

1. Python 操作 PowerPoint 文件的库

Spire.Presentation 是一个功能强大的 Python 库,无需安装 Microsoft Office 即可实现 PPT 文件的创建、读取和修改。该库主要支持以下功能:

  • 从空白文档或模板创建 PowerPoint 文件
  • 添加文本、图片、列表、表格、图表和形状
  • 自定义字体、颜色、背景和版式布局
  • 支持保存或导出为 PPT/PPTX 格式,或转换为 PDF/图片

接下来的章节中,我们将逐步讲解如何安装该库、创建演示文稿,以及为幻灯片添加各种元素。

2. 安装 Spire.Presentation for Python

开始前,您需要先安装 Spire.Presentation 库。可以通过 pip 命令进行安装:

pip install spire.presentation

安装完成后,您就可以在 Python 脚本中使用该库的功能来创建 PowerPoint 文档了。

3. 从零开始创建 PPT 文档

3.1 生成并保存空白演示文稿

让我们从创建一个基础 PowerPoint 演示文稿开始。以下代码示例展示了如何生成并保存一个空白的演示文稿:

from spire.presentation.common import *
from spire.presentation import *

# 创建一个Presentation对象
presentation = Presentation()

# 设置幻灯片大小类型
presentation.SlideSize.Type = SlideSizeType.Screen16x9

# 添加一张幻灯片(默认文档中有一张幻灯片)
presentation.Slides.Append()

# 将文档保存为 PPT 或 PPTX 文件
presentation.SaveToFile("BlankPowerPoint.pptx", FileFormat.Pptx2019)
presentation.Dispose()

在本段代码中:

  • Presentation :表示PowerPoint文件的根类。
  • SlideSize.Type :设置幻灯片尺寸(如SlideSizeType.Screen16x9表示宽屏比例)。
  • Slides.Append() :向演示文稿添加新幻灯片(默认已包含一张初始幻灯片)。
  • SaveToFile() :将演示文稿保存为指定格式(本例为PPTX格式)。

3.2添加基础元素到幻灯片

现在我们已经创建了空白演示文稿,接下来将学习如何添加文本、图片、列表和表格等基础元素。

添加格式化文本

文本是幻灯片最常见的元素之一,在幻灯片中添加带格式的文本可以增强信息传达的清晰度和视觉吸引力。您可以使用以下代码来实现文本的插入和格式设置:

# 获取第一张幻灯片
first_slide = presentation.Slides[0]

# 向幻灯片添加一个形状
rect = RectangleF.FromLTRB(30, 60, 900, 150)
shape = first_slide.Shapes.AppendShape(ShapeType.Rectangle, rect)
shape.ShapeStyle.LineColor.Color = Color.get_Transparent()
shape.Fill.FillType = FillFormatType.none

# 向形状中添加文本
shape.AppendTextFrame("本指南演示如何使用 Python 创建 PowerPoint 文档")

# 获取形状的文本作为文本范围
textRange = shape.TextFrame.TextRange

# 设置字体名称、样式(粗体和斜体)、大小和颜色
textRange.LatinFont = TextFont("宋体")
textRange.IsBold = TriState.TTrue
textRange.FontHeight = 32
textRange.Fill.FillType = FillFormatType.Solid
textRange.Fill.SolidColor.Color = Color.get_Black()

# 设置对齐方式
textRange.Paragraph.Alignment = TextAlignmentType.Left

在本段代码中:

  • AppendShape() :在幻灯片上添加形状(此处创建了一个矩形框作为文本容器)。
  • AppendTextFrame() :为形状添加文本框,用于插入文字内容。
  • TextFrame.TextRange :获取文本范围对象,可进行字体样式、大小和颜色等细节设置。
  • Paragraph.Alignment :设置文本在形状内的对齐方式(左对齐/居中/右对齐)。

添加图片

在幻灯片中添加公司 Logo 等图片可以提升专业性和品牌识别。您可以使用以下代码将图片插入到演示文稿中:

# 获取第一张幻灯片
first_slide = presentation.Slides[0]

# 加载图像文件
imageFile = "C:\\Users\\Administrator\\Desktop\\logo.png"
stream = Stream(imageFile)
imageData = presentation.Images.AppendStream(stream)

# 重置大小
width = imageData.Width * 0.6
height = imageData.Height * 0.6

# 将其添加到幻灯片
rect = RectangleF.FromLTRB(750, 50, 750 + width, 50 + height)
image = first_slide.Shapes.AppendEmbedImageByImageData(ShapeType.Rectangle, imageData, rect)
image.Line.FillType = FillFormatType.none

在本段代码中:

  • Stream() :根据图片路径创建数据流。
  • AppendStream() :将图片数据存入演示文稿的图像集合。
  • AppendEmbedImageByImageData() :按指定坐标位置将图片嵌入幻灯片。

您可能感兴趣: 使用 Python 在 PowerPoint 文档中添加形状

添加列表

项目符号列表有助于清晰地展示信息结构。您可以使用以下代码来实现这一功能:

# 获取第一张幻灯片
first_slide = presentation.Slides[0]

# 指定列表边界和内容
listBounds = RectangleF.FromLTRB(30, 150, 500, 350)
listContent = [
    "第 1 步:安装 Spire.Presentation for Python。",
    "第 2 步:创建一个演示文稿对象。",
    "第 3 步:向幻灯片添加文本、图像等。",
    "第 4 步:设置背景图像或颜色。",
    "第 5 步:将演示文稿保存为 PPT(X) 文件。"
]

# 添加一个形状
autoShape = first_slide.Shapes.AppendShape(ShapeType.Rectangle, listBounds)
autoShape.TextFrame.Paragraphs.Clear()
autoShape.Fill.FillType = FillFormatType.none
autoShape.Line.FillType = FillFormatType.none

for content in listContent:
    # 根据列表内容创建段落并将其添加到形状中
    paragraph = TextParagraph()
    autoShape.TextFrame.Paragraphs.Append(paragraph)
    paragraph.Text = content
    paragraph.TextRanges[0].Fill.FillType = FillFormatType.Solid
    paragraph.TextRanges[0].Fill.SolidColor.Color = Color.get_Black()
    paragraph.TextRanges[0].FontHeight = 20
    paragraph.TextRanges[0].LatinFont = TextFont("宋体")

    # 为这些段落设置项目符号类型
    paragraph.BulletType = TextBulletType.Symbol

    # 设置行间距
paragraph.LineSpacing = 150

在这段代码中:

  • AppendShape() :为列表创建一个矩形形状。
  • TextFrame.Paragraphs.Append() :为每个列表项添加段落。
  • BulletType :设置列表项的项目符号样式。

添加表格

表格在幻灯片中可以有效地组织和展示数据。您可以使用以下代码来实现这一操作:

# 获取第一张幻灯片
first_slide = presentation.Slides[0]

# 定义表格的尺寸和数据
widths = [200, 200, 200]
heights = [18, 18, 18, 18]
dataStr = [
    ["幻灯片编号", "标题", "内容类型"], 
    ["1", "介绍", "文本/图像"], 
    ["2", "项目概述", "图表/图形"],  
    ["3", "关键发现", "文本/列表"]
]

# 将表格添加到幻灯片
table = first_slide.Shapes.AppendTable(30, 360, widths, heights)

# 用数据填充表格并应用格式
for rowNum, rowData in enumerate(dataStr):
    for colNum, cellData in enumerate(rowData):  
        cell = table[colNum, rowNum]
        cell.TextFrame.Text = cellData
        
        textRange = cell.TextFrame.Paragraphs[0].TextRanges[0]
        textRange.LatinFont = TextFont("宋体")
        textRange.FontHeight = 19
        
        cell.TextFrame.Paragraphs[0].Alignment = TextAlignmentType.Center

# 应用内置的表格样式
table.StylePreset = TableStylePreset.MediumStyle2Accent1

在这段代码中:

  • AppendTable() :在指定坐标处将表格添加到幻灯片,并定义列和行的宽度和高度
  • Cell.TextFrame.Text :为表格中的每个单元格设置文本。
  • StylePreset :为表格应用预定义样式,以增强美观性。

3.3 应用背景图像或颜色

为幻灯片设置自定义背景可以提升视觉效果和整体设计。您可以使用以下代码设置背景图片:

# 获取第一张幻灯片
first_slide = presentation.Slides[0]

# 获取第一张幻灯片的背景
background = first_slide.SlideBackground

# 从指定的图像文件创建一个流
stream = Stream("C:\\Users\\Administrator\\Desktop\\background.jpg")
imageData = presentation.Images.AppendStream(stream)

# 将图像设置为背景 
background.Type = BackgroundType.Custom
background.Fill.FillType = FillFormatType.Picture
background.Fill.PictureFill.FillType = PictureFillType.Stretch
background.Fill.PictureFill.Picture.EmbedImage = imageData

在这段代码中:

  • SlideBackground :访问幻灯片的背景属性。
  • Fill.FillType :指定填充的类型(在这种情况下为图像)。
  • PictureFill.FillType :设置背景图像的显示方式(在此情况下为拉伸)。
  • Picture.EmbedImage :为背景设置图像数据。

有关更多背景选项,请参考本教程:Python 为 PowerPoint 幻灯片设置背景颜色或图片

效果图:

以下是由上述代码片段生成的 PowerPoint 文档的截图。

使用Python创建的PPT文档

4. 基于模板快速生成PPT演示文档

使用模板可以快速生成标准化的演示文稿,只需替换预置的占位符即可完成个性化定制。这种方法特别适合需要批量生成或定期更新的场景,例如项目报告、销售提案等。以下是基于模板动态生成 PowerPoint 文档的完整示例:

from spire.presentation.common import *
from spire.presentation import *

# Create a Presentation object
presentation = Presentation()

# Load a PowerPoint document from a specified file path
presentation.LoadFromFile("C:\\Users\\Administrator\\Desktop\\template.pptx")

# Get a specific slide from the presentation
slide = presentation.Slides[0]

# Define a list of replacements where each tuple consists of the placeholder and its corresponding replacement text
replacements = [
    ("{project_name}", "寰宇太阳能计划"),
    ("{budget}", "250万元"),
    ("{status}", "进行中(65% 完成)"),
    ("{start_date}", "2023年3月15日"),
    ("{end_date}", "2024年11月30日"),
    ("{manager}", "张三"),
    ("{client}", "寰宇科技有限公司")
]

# Iterate through each replacement pair
for old_string, new_string in replacements:

    # Replace the first occurrence of the old string in the slide with the new string
    slide.ReplaceFirstText(old_string, new_string, False)

# Save the modified presentation to a new file
presentation.SaveToFile("Template-Based.pptx", FileFormat.Pptx2019)
presentation.Dispose()

在这段代码中:

  • LoadFromFile() :加载作为模板的现有 PowerPoint 文件。
  • ReplaceFirstText() :用实际值替换幻灯片中的占位符。这对于动态内容生成非常有用。
  • SaveToFile() :将修改后的演示文稿保存为新文件。

效果图:

Python根据模板生成PPT文档

5. Python 自动化生成 PPT 的最佳实践

在使用 Python 创建 PowerPoint 演示文稿时,请考虑以下最佳实践:

  • 保持一致性 :确保所有幻灯片的格式(字体、颜色、样式)保持一致,以呈现专业的外观。-
  • 模块化代码 :将文档生成拆分为函数(例如 add_list()、insert_image()),以提高可重用性。
  • 优化图像 :在将图像添加到演示文稿之前,调整大小并压缩图像,以减少文件大小并提高加载速度。
  • 使用模板 :尽可能使用模板,以节省时间并保持设计的一致性。
  • 测试代码 :始终测试您的演示文稿生成代码,以确保所有元素正确添加并按预期显示。

6. 总结

在本教程中,我们探讨了如何使用Spire.Presentation for Python库 在 Python 中创建 PowerPoint 文档 。从类库安装、基础文档创建,到文本样式控制、图片插入、表格制作等元素编排,再到模板应用等高级功能,本教程通过具体代码示例帮助开发者快速掌握各项操作技巧。这些方法能显著提升PPT制作效率,特别适用于需要定期生成标准化文档的工作场景。

7. 常见问题解答

Q1. 什么是 Spire.Presentation?

Spire.Presentation 是一个强大的库,用于在多种编程语言中创建、读取和修改 PowerPoint 文件,包括 Python。

Q2. 这个库需要安装 Microsoft Office 吗?

不,Spire.Presentation 可独立运行,无需安装 Microsoft Office。

Q3. 我可以自定义演示文稿中幻灯片的布局吗?

是的,您可以通过以下方式完全自定义每张幻灯片的版式:

  • 尺寸调整:修改幻灯片页面大小(如A4/16:9等比例)。
  • 背景定制:设置纯色/渐变/图片背景。
  • 元素布局:自由调整形状、文本框、图片等对象的位置与层级关系。

Q4. Spire.Presentation 是否支持 PPT 和 PPTX 格式?

是的,Spire.Presentation 支持 PPT 和 PPTX 格式。 您可以在保存时通过 FileFormat 参数自由选择输出格式,例如:

# 保存为PPTX格式(推荐)
presentation.SaveToFile("output.pptx", FileFormat.Pptx2019)

# 保存为PPT格式(兼容旧版)
presentation.SaveToFile("output.ppt", FileFormat.PPT)

Q5. 我可以在演示文稿中添加图表吗?

可以,Spire.Presentation 支持在幻灯片中添加图表,使您能够有效地可视化数据。有关详细说明,请参考:使用 Python 在 PowerPoint 中创建柱形图

申请临时License

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

Spire.OCR 2.1.6 现已发布!该版本新增对 Linux-ARM 平台的支持,可设置图像是否旋转及文本是否按图像位置输出,支持提取文本坐标,并升级了 SkiaSharp 依赖项。此外还修复了文本识别不准确及语言模型命名不规范的问题。详情如下:

新功能:

问题修复:


获取 Spire.OCR 2.1.6 请点击:

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