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

Spire.Cloud 纯前端文档控件

Spire.XLS for Python 14.7.3 现已发布。该版本修复了在 Ubuntu 22 上使用 Spire.XLS 的某些功能时抛出异常的问题。详情查看下文。

问题修复:


获取 Spire.XLS for Python 14.7.3,请点击:

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

在日常处理 Word 文档时,有时可能需要从文档中提取内容用于其他目的。在本文中,您将学习如何使用 Spire.Doc for .NET 通过代码从 Word 文档中提取文本和图片。

安装 Spire.Doc for .NET

首先,您需要将 Spire.Doc for.NET 包含的 DLL 文件作为引用添加到您的 .NET 项目中。DLL 文件可以从此链接下载,也可以通过 NuGet 安装。

PM> Install-Package Spire.Doc

C# 提取 Word 文档中的文本

使用 Spire.Doc for .NET,您可以遍历文档中所有段落,然后通过 Paragraph.Text 属性获取每个段落的文本。具体步骤如下:

  • C#
using Spire.Doc;
using Spire.Doc.Documents;
using System.Text;
using System.IO;

namespace ExtractTextfromWord
{
    class ExtractText
    {
        static void Main(string[] args)
        {
            //创建Document对象
            Document document = new Document();

            //加载Word文档 
            document.LoadFromFile("示例.docx");

            //创建StringBuilder实例
            StringBuilder sb = new StringBuilder();

            //遍历文档中所有节
            foreach (Section section in document.Sections)
            {
                //遍历每一节中的段落
                foreach (Paragraph paragraph in section.Paragraphs)
                {
                    //获取段落文本并保存到StringBuilder实例中
                    sb.AppendLine(paragraph.Text);
                }
            }

            //将提取的文本写入txt文档
            File.WriteAllText("提取文本.txt", sb.ToString());
        }
    }
}

C# 提取 Word 文档中的文本和图片

C# 提取 Word 文档中的图片

除了提取文本外,Spire.Doc for .NET 还支持提取文档中的图片,只需要遍历每个段落中的子对象,并保存其中为 DocPicture 类的实例的子对象即可。具体步骤如下:

  • C#
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;

namespace ExtractImage
{
    class Program
    {
        static void Main(string[] args)
        {
            //加载Word文档
            Document document = new Document("示例.docx");
            int index = 0;

            //遍历文档中所有节
            foreach (Section section in document.Sections)
            {
                //遍历每一节中所有段落
                foreach (Paragraph paragraph in section.Paragraphs)
                {
                    //遍历每个段落中的子对象
                    foreach (DocumentObject docObject in paragraph.ChildObjects)
                    {
                        //如果子对象为图片, 则将图片保存到指定路径
                        if (docObject.DocumentObjectType == DocumentObjectType.Picture)
                        {
                            DocPicture picture = docObject as DocPicture;
                            picture.Image.Save(string.Format("提取图片\\图_{0}.png", index), System.Drawing.Imaging.ImageFormat.Png);
                            index++;
                        }
                    }
                }
            }
        }
    }
}

C# 提取 Word 文档中的文本和图片

申请临时 License

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

Spire.PDF 10.7.21 已发布。本次更新新增支持利用 Chrome 插件转换 HTML 到 PDF 的功能。该版本还增强了 PDF 到 Excel、PDFA1B 以及图片的转换功能。此外,一些已知问题也在该版本中成功修复,如打印 PDF 文档时程序报错的问题。详情请阅读以下内容。

新功能:

问题修复:


获取 Spire.PDF 10.7.21,请点击:

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

Excel 文件是广泛使用的数据记录及分析工具。在其演进过程过中,微软推出了多种不同的文件格式来储存 Excel 数据。其中,最常见的是较早使用的 XLS 格式,以及最新的 XLSX 格式。

XLS 格式诞生于上世纪 90 年代末,对于当前的使用需求来说,有不少局限性,比如表格大小限制为 65536 行和 256 列,以及最多支持 65000 个单独样式。2007 年推出的 XLSX 格式允许更大的文件大小、更多的行和列,并扩展了样式功能,从而解决了 XLS 格式的局限。虽然 XLSX 现在是标准格式,但仍有许多现有的 XLS 文件需要处理和使用,因此在这些格式之间进行转换是比较重要的技能。本文将介绍如何使用 Spire.XLS for Python 在 Python 项目中实现 Excel 的 XLS 格式和 XLSX 格式之间的转换。

安装 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 将 XLS 文件转换为 XLSX 文件

要将 XLS 文件转换为 XLSX 格式,可以使用 Workbook.LoadFromFile() 方法载入 XLS 文件,然后使用 Workbook.SaveToFile(fileName, ExcelVersion.Version2007) 方法将 XLS 文件转换为 XSLX 文件并保存。其中,ExcelVersion 枚举类型还可设置为 ExcelVersion.Version2010、ExcelVersion.Version2013 或 ExcelVersion.Version2016 等更高的版本。

操作步骤如下:

  • Python
from spire.xls import Workbook, ExcelVersion

# 创建Workbook类的实例
workbook = Workbook()

# 载入XLS文件
workbook.LoadFromFile("示例1.xls")

# 将XLS文件保存为XLSX文件
workbook.SaveToFile("output/XLS转XLSX.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

Python 将 XLS 转换为 XLSX 以及 XLSX 转换为 XLS

用 Python 将 XLSX 文件转换为 XLS 文件

要讲 XLSX 文件转换为 XLS 格式,只需要载入 XLSX 文件,并在保存时将参数设置为 ExcelVersion.Version97to2003 即可。需要注意的是,由于 XLS 文件不支持储存 XLSX 文件中的某些格式,因此转换结果可能出现复杂格式丢失或变化的情况。

以下是操作步骤:

  • Python
from spire.xls import Workbook, ExcelVersion

# 创建Workbook类的实例
workbook = Workbook()

# 载入XLSX文件
workbook.LoadFromFile("示例2.xlsx")

# 将XLSX文件保存为XLS文件
workbook.SaveToFile("output/XLSX转XLS.xls", ExcelVersion.Version97to2003)
workbook.Dispose()

Python 将 XLS 转换为 XLSX 以及 XLSX 转换为 XLS

申请临时 License

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

拆分 PPT 的好处在于能够将复杂信息细分,使观众更易于消化理解。利用拆分,可将主题有序地分布在多张幻灯片上,有助于观众集中注意力,并记住每个部分的核心内容。此外,拆分的 PPT 通常看起来更加清晰和专业,能够更好地吸引观众,提高演讲的整体效果。在本文中,我们将演示如何使用 Spire.Presentation for Python 在 Python 拆分 PowerPoint 文档,包括按每一张幻灯片来拆分或按指定幻灯片页码范围来拆分。

安装 Spire.Presentation for Python

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

pip install Spire.Presentation

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

按每一张幻灯片来拆分

使用 Spire.Presentation for Python 来把 PowerPoint 文档中每一张幻灯片都单独保存到一个新的文档中,需要遍历原始文档的每一页,然后把遍历到的当前幻灯片添加到新的 Presentation 对象中,并保存,具体步骤如下:

  • Python
from spire.presentation import *

# 定义输入文件路径,即要拆分的PPT模板文件
inputFile = "signature/InputTemplate.pptx"

# 定义输出文件夹路径,用于存放拆分后的PPT文件
outputFolder = "signature/output"

# 创建一个Presentation对象,用于操作PPT文件
ppt = Presentation()

# 从指定路径加载PPT文件到Presentation对象中
ppt.LoadFromFile(inputFile)

# 遍历PPT文件中的每一张幻灯片
for i, slide in enumerate(ppt.Slides):
   
    # 创建一个新的Presentation对象,用于存储拆分后的幻灯片
    newppt = Presentation()
   
    # 移除新Presentation对象中的默认空白幻灯片
    newppt.Slides.RemoveAt(0)
    
    # 将当前遍历到的幻灯片添加到新的Presentation对象中
    newppt.Slides.AppendBySlide(slide)

    # 生成拆分后的文件名,包括输出文件夹路径和序号
    result = outputFolder + "//" + "SplitPPT-" + str(i) + ".pptx"
   
    # 将新的Presentation对象保存为PPTX格式的文件
    newppt.SaveToFile(result, FileFormat.Pptx2010)
   
    # 释放newppt对象的资源
    newppt.Dispose()

# 释放原始ppt对象的资源
ppt.Dispose()

Python 拆分 PowerPoint 幻灯片

按指定幻灯片页码范围来拆分

在拆分 PowerPoint 文档时,更多的场景需要我们按指定幻灯片页码范围来拆分,使用 Spire.Presentation for Python 来实现这一目标的具体步骤如下:

  • Python
from spire.presentation import *

# 定义输入文件路径,即要处理的PPT模板文件
inputFile = "signature/InputTemplate.pptx"

# 定义输出文件夹路径,用于存放分割后的PPT文件
outputFolder = "signature/output1"

# 创建一个空的Presentation对象,用于加载和操作PPT文件
ppt = Presentation()

# 从指定路径加载PPT模板文件到Presentation对象中
ppt.LoadFromFile(inputFile)

# 创建一个新的Presentation对象,用于存储分割后的第一部分幻灯片
ppt1 = Presentation()

# 移除新Presentation对象中的默认空白幻灯片
ppt1.Slides.RemoveAt(0)

# 循环两次,将原Presentation对象的前两个幻灯片添加到新的Presentation对象中
for i in range(2):
   ppt1.Slides.AppendBySlide(ppt.Slides[i])

# 拼接输出文件的完整路径,并保存第一部分幻灯片到该路径下的SplitPPT1.pptx文件中
result = outputFolder + "//" + "SplitPPT1.pptx"
ppt1.SaveToFile(result, FileFormat.Pptx2010)

# 创建一个新的Presentation对象,用于存储分割后的第二部分幻灯片
ppt2 = Presentation()

# 移除新Presentation对象中的默认空白幻灯片
ppt2.Slides.RemoveAt(0)

# 将原Presentation对象的第三个幻灯片添加到新的Presentation对象中
ppt2.Slides.AppendBySlide(ppt.Slides[2])

# 拼接输出文件的完整路径,并保存第二部分幻灯片到该路径下的SplitPPT2.pptx文件中
result = outputFolder + "//" + "SplitPPT2.pptx"
ppt2.SaveToFile(result, FileFormat.Pptx2010)

# 释放所有Presentation对象占用的资源
ppt.Dispose()
ppt1.Dispose()
ppt2.Dispose()

Python 拆分 PowerPoint 幻灯片

申请临时 License

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

适当的调整 Excel 中的“行”和“列”顺序可以增加可读性,例如通过将日期数据设置为首行或者首列,就可以根据特定的日期快速定位数据。在 MS Excel 中移动行或列是非常容易的,只需选中行或列后使用鼠标来拖动即可。在本文中,我们将演示如何使用 Spire.XLS for .NET 在 C# 中对Excel文档中的“行”或“列”重新排序。

安装 Spire.XLS for .NET

首先,您需要将 Spire.XLS for .NET 包含的 DLL 文件作为引用添加到您的 .NET 项目中。DLL 文件可以从此链接下载,也可以通过 NuGet 安装。 
PM> Install-Package Spire.XLS

对 Excel 文档中“行”重新排序

使用 Spire.XLS for .NET 来重新排序 Excel 文档的行,首先需要把目标工作表复制到一个临时工作表中,然后按照指定顺序把临时工作表中的行复制到目标工作表的指定行,这样新排序的行覆盖了原始数据,就实现了对行重新排序的效果,具体步骤如下。

  • C#
using Spire.Xls;
using System.Linq;

namespace RearrangeRows
{
    internal class Program
    {
         static void Main(string[] args)      
         {
            // 创建一个Workbook对象
            Workbook workbook = new Workbook();

            // 从指定路径加载Excel文件
            workbook.LoadFromFile(@"../../data1/摘要.xlsx");

            // 获取第一个工作表
            Worksheet worksheet = workbook.Worksheets[0];

            // 定义新的行顺序数组
            int[] newRowOrder = new int[] { 0,1,2,3,6,4,5};

            // 添加一个新的工作表,命名为"temp"
            Worksheet newSheet = workbook.Worksheets.Add("temp");

            // 将原工作表的内容复制到新工作表中
            newSheet.CopyFrom(worksheet);

            // 遍历新的行顺序数组
            for (int i = 0; i < newRowOrder.Count(); i++)
            {
                // 将原工作表的行复制到新工作表的新位置
                newSheet.Rows[newRowOrder[i]].Copy(worksheet.Rows[i], true, true);

                // 将原工作表的行高设置为新工作表对应行的行高
                worksheet.Rows[i].RowHeight = newSheet.Rows[newRowOrder[i]].RowHeight;
            }

            // 删除临时工作表
            workbook.Worksheets.Remove(newSheet);

            // 将修改后的工作簿保存到指定路径,使用2016版本的Excel格式
            workbook.SaveToFile(@"../../output/MoveRow.xlsx", FileFormat.Version2016);
         }
    }
}

C# 对 Excel 文档中的“行”或“列”重新排序

对 Excel 文档中“列”重新排序

以下是使用 Spire.XLS for .Net 在 Excel 中重新排列“列”顺序的步骤:

  • C#
using Spire.Xls;
using System.Linq;

namespace RearrangeColumns
{
    internal class Program
    {
         static void Main(string[] args)       
         {
            // 创建一个Workbook对象
            Workbook workbook = new Workbook();

            // 从指定路径加载Excel文件
            workbook.LoadFromFile(@"../../data1/资产.xlsx");

            // 获取第一个工作表
            Worksheet worksheet = workbook.Worksheets[0];

            // 定义新的列顺序
            int[] newColumnOrder = new int[] { 0,1,3,2 };

            // 添加一个新的工作表,命名为"temp"
            Worksheet newSheet = workbook.Worksheets.Add("temp");

            // 将原工作表的内容复制到新工作表中
            newSheet.CopyFrom(worksheet);

            // 遍历新的列顺序数组
            for (int i = 0; i < newColumnOrder.Count(); i++)
            {
                // 将原工作表的列复制到新工作表的新位置
                newSheet.Columns[newColumnOrder[i]].Copy(worksheet.Columns[i], true, true);

                // 将原工作表的列宽设置为新工作表对应列的列宽
                worksheet.Columns[i].ColumnWidth = newSheet.Columns[newColumnOrder[i]].ColumnWidth;
            }

            // 删除临时工作表
            workbook.Worksheets.Remove(newSheet);

            // 将修改后的工作簿保存到指定路径,使用2016版本的Excel格式
            workbook.SaveToFile(@"../../output/MoveColumn.xlsx", FileFormat.Version2016); 
         }
    }
}

C# 对 Excel 文档中的“行”或“列”重新排序

申请临时 License

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

超链接可以指向文件、电子邮件、网站、图像或视频,当读者点击时。超链接在 Word 文档中被广泛使用,因为它非常方便地将读者引导到相关有用的内容。通过使用 Spire.Doc for .NET,开发人员可以添加超链接、查找超链接和修改超链接。在本文中,我们将演示如何使用 Spire. Doc for .NET 在 C# 中找到 Word 文档中的所有现有超链接以及修改特定的超链接。

安装 Spire.Doc for .NET

首先,您需要将 Spire.Doc for.NET 包含的 DLL 文件作为引用添加到您的 .NET 项目中。DLL 文件可以从此链接下载,也可以通过 NuGet 安装。

PM> Install-Package Spire.Doc

查找 Word 文档中所有超链接

超链接由两个基本部分组成:超链接地址(URL)和其显示文本。使用 Spire.Doc for .NET,您可以先遍历文档对象,找到所有超链接对象,再使用 Field.FieldText 和 Field.Code 属性来获取超链接的显示文本地址和地址(URL),详细步骤如下。

  • C#
using Spire.Doc;
using System.IO;
using System.Text;

namespace FindHyperlink
{
    internal class Program
    {
         static void Main(string[] args)      
         {
            // 创建一个Document对象
            Document doc = new Document();
           
            // 从指定路径加载一个Word文档
            doc.LoadFromFile(@"hyperlink.docx");
          
            // 创建一个Field类型的列表,用于存储超链接
            List hyperlinks = new List();
           
            // 遍历文档的所有节
            foreach (Section section in doc.Sections)
            {
                // 遍历每个节的子对象
                foreach (DocumentObject sec in section.Body.ChildObjects)
                {
                    // 判断子对象是否为段落类型
                    if (sec.DocumentObjectType == DocumentObjectType.Paragraph)
                    {
                        // 遍历段落的子对象
                        foreach (DocumentObject para in (sec as Paragraph).ChildObjects)
                        {
                            // 判断子对象是否为Field类型
                            if (para.DocumentObjectType == DocumentObjectType.Field)
                            {
                                // 将子对象转换为Field类型
                                Field field = para as Field;

                                // 判断字段是否为超链接类型
                                if (field.Type == FieldType.FieldHyperlink)
                                {
                                    // 将超链接对象添加到列表中
                                    hyperlinks.Add(field);
                                }
                            }
                        }
                    }
                }
            }
            // 创建一个StringBuilder对象,用于拼接超链接信息
            StringBuilder sb = new StringBuilder();
          
            // 遍历超链接列表
            foreach (Field hyperlink in hyperlinks)
            {
                // 添加超链接显示文本到StringBuilder中
                sb.AppendLine("超链接的文本:" + hyperlink.FieldText);
              
                // 添加超链接地址URL到StringBuilder中
                sb.AppendLine("超链接的链接:" + hyperlink.Code);
             
                // 添加空行分隔不同的超链接信息
                sb.AppendLine();
            }

            // 将StringBuilder中的内容写入到指定的文件中
            File.WriteAllText(@"Hyper_Result.txt", sb.ToString());

            // 关闭文档对象
            doc.Close();    
         }
    }
}

C# 查找、修改 Word 文档中的超链接

修改 Word 文档中特定超链接

使用 Spire.Doc for .NET,您可以使用 Field.Code 和 Field.FieldText 属性修改现有超链接的地址和显示文本,通过 Field.CharacterFormat 下的相关属性来设置超链接显示文本的字体大小、字体颜色、字体斜体效果、字体加粗效果等,具体步骤如下:

  • C#
using Spire.Doc.Documents;
using Spire.Doc;
using System.Text;
using System.IO;

namespace CountWordsAndCharactersForParagraph
{
    internal class Program
    {
         static void Main(string[] args)       
 	     {
            // 创建一个Document对象
            Document doc = new Document();

            // 从指定路径加载一个Word文档
            doc.LoadFromFile(@"../../data/hyperlink.docx");

            // 遍历文档的所有节
            foreach (Section section in doc.Sections)
            {
                // 遍历每个节的子对象
                foreach (DocumentObject sec in section.Body.ChildObjects)
                {
                    // 判断子对象是否为段落类型
                    if (sec.DocumentObjectType == DocumentObjectType.Paragraph)
                    {
                        // 遍历段落的子对象
                        foreach (DocumentObject para in (sec as Paragraph).ChildObjects)
                        {
                            // 判断子对象是否为Field类型
                            if (para.DocumentObjectType == DocumentObjectType.Field)
                            {
                                // 将子对象转换为Field类型
                                Field field = para as Field;

                                // 判断字段是否为超链接类型
                                if (field.Type == FieldType.FieldHyperlink)
                                {
                                    // 判断超链接文本是否为"Spire.Doc for .NET"
                                    if (field.FieldText.Equals("Spire.Doc for .NET"))
                                    {
                                        // 修改超链接的目标地址
                                        field.Code = "HYPERLINK \"" + "https://www.e-iceblue.com/Introduce/word-for-net-introduce.html" + "\"";

                                        // 设置超链接字体大小为15
                                        field.CharacterFormat.FontSize = 15;

                                        // 设置超链接字体颜色为红色
                                        field.CharacterFormat.TextColor = Color.Red;

                                        // 设置超链接字体为斜体
                                        field.CharacterFormat.Italic = true;

                                        // 设置超链接字体为粗体
                                        field.CharacterFormat.Bold = true;
                                    }
                                }
                            }
                        }
                    }
                }
            }

            // 将修改后的文档保存到指定路径,格式为Docx
            doc.SaveToFile(@"EditHyperlinks.docx", FileFormat.Docx); 
 	     }
    }
}

C# 查找、修改 Word 文档中的超链接

申请临时 License

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

在幻灯片中加入音频和视频是创建互动性 PowerPoint 演示文稿的常见做法,可以帮助演讲者吸引观众并传达更多的信息。然而,如果内容需求发生变化,有时需要对这些多媒体元素进行替换或更新。本文将展示如何使用 Spire.Presentation for Python 在 PowerPoint 演示文稿中替换音频和视频以满足内容更新的需求,如更新过时的视频以及提高音频质量等。

安装 Spire.Presentation for Python

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

pip install Spire.Presentation

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

使用 Python 替换 PowerPoint 演示文稿中的视频

通过 Spire.Presentation for Python,开发者可以找到幻灯片中的视频形状并通过 IVideo.EmbeddedVideoData 属性来替换视频数据。在替换视频之后,视频的预览图也需要通过 IVideo.PictureFill.Picture 属性进行更新。详细操作步骤如下:

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

# 创建 Presentation 类的对象
pres = Presentation()

# 加载一个 PowerPoint 演示文稿
pres.LoadFromFile("示例.pptx")

# 获取第二张幻灯片
slide = pres.Slides[0]

# 获取演示文稿中的视频
videos = pres.Videos

# 遍历幻灯片上的形状
for shape in slide.Shapes:
    # 检查形状是否为视频
    if isinstance(shape, IVideo):
        video = shape if isinstance(shape, IVideo) else None
        # 将新视频附加到视频集合中
        videoData = videos.AppendByStream(Stream("Ocean2.mp4"))
        # 用新视频替换形状中的视频
        video.EmbeddedVideoData = videoData
        # 在演示文稿中嵌入一张图片
        imageData = pres.Images.AppendStream(Stream("Ocean2.png"))
        # 将新图片设置为视频的预览
        video.PictureFill.Picture.EmbedImage = imageData

# 保存演示文稿
pres.SaveToFile("output/替换视频.pptx", FileFormat.Pptx2016)
pres.Dispose()

Python 替换 PowerPoint 演示文稿中视频和音频

使用 Python 替换 PowerPoint 演示文稿中的音频

同样,开发者也可以使用 Spire.Presentation for Python 找到演示文稿幻灯片中的特定音频并替换音频数据。详细操作步骤如下:

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

# 创建 Presentation 类的对象
pres = Presentation()

# 加载一个 PowerPoint 演示文稿文件
pres.LoadFromFile("示例.pptx")

# 从演示文稿中获取音频
audios = pres.WavAudios

# 获取包含音频的幻灯片
slide = pres.Slides[0]

# 遍历幻灯片中的每个形状
for shape in slide.Shapes:
    # 检查形状是否为音频形状
    if isinstance(shape, IAudio):
        audio = shape if isinstance(shape, IAudio) else None
        # 加载音频文件
        stream = Stream("Wave2.wav")
        # 替换形状中的音频
        audioData = audios.Append(stream)
        audio.Data = audioData

# 保存演示文稿
pres.SaveToFile("output/替换音频.pptx", FileFormat.Pptx2016)
pres.Dispose()

申请临时 License

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

Word 文档中的批注通常用于协作审阅和提供反馈意见。这些批注可能包含有价值的文本和图片信息。提取批注中的文本和图片内容,可以帮助作者分析和评估审阅者的意见,从而全面了解文档的优缺点及改进建议。本文将介绍如何使用 Spire.Doc for Python 在 Python 中提取 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

Python 从 Word 批注中提取文本

你可以使用 Spire.Doc for Python 提供的 Comment.Format.Author 和 Comment.Body.Paragraphs[index].Text 属性获取 Word 批注的作者和文本。详细步骤如下:

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

# 创建一个 Document 类的对象
document = Document()
# 加载包含批注的 Word 文档
document.LoadFromFile("批注.docx")

# 创建一个列表来存储提取的批注数据
comments = []

# 遍历文档中的批注
for i in range(document.Comments.Count):
    ccomment = document.Comments.get_Item(i)
    comment_text = ""

    # 遍历批注正文中的段落
    for j in range(comment.Body.Paragraphs.Count):
        paragraph = comment.Body.Paragraphs.get_Item(j)
        comment_text += paragraph.Text + "\n"

    # 获取批注作者
    comment_author = comment.Format.Author

    # 将批注数据添加到列表中
    comments.append({
        "作者": comment_author,
        "内容": comment_text
    })

# 将批注数据写入文件
with open("批注.txt", "w", encoding="utf-8") as file:
    for i, comment in enumerate(comments, start=1):
        file.write(f"批注{i}:\n  作者: {comment['作者']}\n  批注内容: {comment['内容']}\n")

document.Close()

Python 提取 Word 文档批注中的文本和图片

Python 从 Word 批注中提取图片

要从 Word 批注中提取图片,需要遍历批注段落中的子对象,找到 DocPicture 对象,然后使用 DocPicture.ImageBytes 属性获取图片数据,最后将图片数据保存为图片文件。

具体步骤如下:

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

# 创建一个 Document 类的对象
document = Document()
# 加载包含批注的 Word 文档
document.LoadFromFile("图片批注.docx")

# 创建一个列表来存储提取的图片数据
images = []

# 遍历文档中的批注
for i in range(document.Comments.Count):
    comment = document.Comments.get_Item(i)
    # 遍历批注正文中的段落
    for j in range(comment.Body.Paragraphs.Count):
        paragraph = comment.Body.Paragraphs.get_Item(j)
        # 遍历段落中的子对象
        for o in range(paragraph.ChildObjects.Count):
            obj = paragraph.ChildObjects[o]
            # 查找图片
            if isinstance(obj, DocPicture):
                picture = obj
                # 获取图片数据并添加到列表中
                data_bytes = picture.ImageBytes
                images.append(data_bytes)

# 将图片数据保存为图片文件
for i, image_data in enumerate(images):
    file_name = f"批注图片-{i}.png"
    with open(os.path.join("批注图片/", file_name), 'wb') as image_file:
        image_file.write(image_data)

document.Close()

Python 提取 Word 文档批注中的文本和图片

申请临时 License

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

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 文件的标准和自定义文档属性

Excel 文档属性分为两大类:

Spire.XLS for Python 允许我们读取 Excel 文件的标准和自定义文档属性。以下是具体步骤:

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

def AppendAllText(fname: str, text: List[str]):
    """
    将文本列表写入指定文件
    
    参数:
    fname (str): 文件名
    text (List[str]): 文本列表
    """
    fp = open(fname, "w")
    for s in text:
        fp.write(s + "\n")
    fp.close()

inputFile = "示例.xlsx"
outputFile = "获取文档属性.txt"

# 创建 Workbook 实例
workbook = Workbook()

# 加载 Excel 文档
workbook.LoadFromFile(inputFile)

# 创建一个列表来存储文档属性
builder = []

# 获取所有标准文档属性的集合
standardProperties = workbook.DocumentProperties

# 获取特定的标准属性并添加到列表中
builder.append("标准文档属性:")
builder.append("标题: " + standardProperties.Title)
builder.append("主题: " + standardProperties.Subject)
builder.append("类别: " + standardProperties.Category)
builder.append("关键字: " + standardProperties.Keywords)
builder.append("备注: " + standardProperties.Comments)
builder.append("")

# 获取所有自定义文档属性的集合
customProperties = workbook.CustomDocumentProperties

builder.append("自定义属性:")
# 遍历集合
for i in range(len(customProperties)):
    
    # 获取每个自定义文档属性的名称、类型和值
    name = customProperties[i].Name
    type = customProperties[i].PropertyType
    obj = customProperties[i].Value

    # 确定具体的属性类型,并将属性值转换为相应的数据类型
    value = None
    if type == PropertyType.Double:
        value = Double(obj).Value
    elif type == PropertyType.DateTime:
        value = DateTime(obj).ToShortDateString()
    elif type == PropertyType.Bool:
        value = Boolean(obj).Value
    elif type == PropertyType.Int:
        value = Int32(obj).Value
    elif type == PropertyType.Int32:
        value = Int32(obj).Value
    else:
        value = String(obj).Value

    # 将属性名称和转换后的属性值添加到列表中   
    builder.append(name + ": " + str(value))

# 将列表的内容写入文本文件
AppendAllText(outputFile, builder)
workbook.Dispose()

Python 获取或删除 Excel 文件的文档属性

Python 删除 Excel 文件的标准和自定义文档属性

你可以通过将标准文档属性的值设置为空来从 Excel 文件中删除它们。对于自定义文档属性,你可以使用 ICustomDocumentProperties.Remove() 方法将其删除。以下是具体步骤:

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

inputFile = "示例.xlsx"
outputFile = "删除文档属性.xlsx"

# 创建 Workbook 实例
workbook = Workbook()

# 加载 Excel 文档
workbook.LoadFromFile(inputFile)

# 获取所有标准文档属性的集合
standardProperties = workbook.DocumentProperties

# 将每个标准文档属性的值设置为空
standardProperties.Title = ""
standardProperties.Subject = ""
standardProperties.Category = ""
standardProperties.Keywords = ""
standardProperties.Comments = ""

# 获取所有自定义文档属性的集合
customProperties = workbook.CustomDocumentProperties

# 倒序遍历集合
for i in range(len(customProperties) - 1, -1, -1):
    # 根据属性名称从集合中删除每个自定义文档属性
    customProperties.Remove(customProperties[i].Name)

# 保存结果文件
workbook.SaveToFile(outputFile, ExcelVersion.Version2016)
workbook.Dispose()

Python 获取或删除 Excel 文件的文档属性

申请临时 License

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