通常情况下,PDF 文档的内容需要遵循一定的逻辑性,如报告的结构通常包括标题、章节和小节。如果 PDF 文档中的页面没有按照正确的顺序排列,文档的连贯性就会受到影响。通过重新排列页面顺序,可以确保信息以清晰易懂的方式呈现。在本文中,您将学习如何使用 Spire.PDF for Python 通过代码调整 PDF 的页面顺序。
本教程需要用到 Spire.PDF for Python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.PDF
如果您不清楚如何安装,请参考: 如何在 Windows 中安装 Spire.PDF for Python
Spire.PDF for Python 提供了 PdfDocument.Pages.ReArrange(orderArray: List[int]) 方法,用于重新排列 PDF 文件中的页面。参数 orderArray 是一个整数列表,它允许你按照想要的顺序指定页面索引来重排 PDF 页面顺序。
以下是使用 Python 调整 PDF 页面顺序的详细步骤:
from spire.pdf.common import *
from spire.pdf import *
# 创建PdfDocument对象
pdf = PdfDocument()
# 加载PDF文件
pdf.LoadFromFile("排序.pdf")
# 调整PDF页面顺序
pdf.Pages.ReArrange([2, 1, 0])
# 保存结果文件
pdf.SaveToFile("重排PDF页面.pdf", FileFormat.PDF)
pdf.Close()

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
在 Excel 中,“冻结窗格”功能使得用户能够在滚动查看数据时锁定特定的行和列,确保关键信息始终保持可见,无论数据集大小如何。然而,在某些情况下,取消冻结窗格也是必要的操作。通过解除冻结行和列,用户能够更加自如地浏览数据,同时方便对数据进行全面分析、编辑和格式调整。除此之外,通常被冻结的窗格内包含着重要的信息内容,而获知冻结窗格的范围,能够帮助用户更方便地访问及提取这些内容。本文将展示如何使用 Spire.XLS for Java 通过 Java 代码在 Excel 工作表中取消冻结窗格以及获取已冻结的窗格范围。
首先,您需要在 Java 程序中添加 Spire.Xls.jar 文件作为一个依赖项。您可以从此链接下载 JAR 文件。如果您使用 Maven,则可以通过在 pom.xml 文件中添加以下代码轻松导入该 JAR 文件。
<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.xls</artifactId>
<version>16.9.2</version>
</dependency>
</dependencies>
借助 Spire.XLS for Java,开发者可以通过 Workbook.getWorksheets().get() 方法获取 Excel 工作簿中的指定工作表,并利用 Worksheet.RemovePanes() 方法来解冻工作表中的窗格冻结。以下是在 Excel 工作表中取消冻结窗格的详细步骤:
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
public class UnfreezePanes {
public static void main(String[] args) {
// 创建Workbook类的对象
Workbook wb = new Workbook();
// 载入Excel工作簿
wb.loadFromFile("示例.xlsx");
// 获取第一个工作表
Worksheet sheet = wb.getWorksheets().get(0);
// 解冻窗格
sheet.removePanes();
// 保存工作簿
wb.saveToFile("output/取消冻结窗格.xlsx");
wb.dispose();
}
}

Spire.XLS for Java 提供了 Worksheet.getFreezePanes() 方法以获取冻结窗格的行索引和列索引,帮助开发者更方便地提取、移除或格式化冻结窗格的内容。所获取的参数以整数列表的形式给出:[int rowIndex, int columnIndex]。例如,[1, 0] 表示第一行被冻结。
以下是获取冻结窗格的行和列参数的具体步骤:
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
public class GetFrozenCellRange {
public static void main(String[] args) {
// 创建Workbook类的对象
Workbook wb = new Workbook();
// 载入Excel文件
wb.loadFromFile("示例.xlsx");
// 获取第一个工作表
Worksheet ws = wb.getWorksheets().get(0);
// 获取冻结行和列的索引
int[] index = ws.getFreezePanes();
// 输出结果
System.out.println("冻结行数: " + index[0] + "\r\n冻结列数: " + index[1]);
wb.dispose();
}
}

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
在 Excel 文档中创建下拉框的作用是提供一种简便的数据输入方式,限制用户只能从预定义的选项中选择,避免输入错误和确保数据的准确性。通过下拉框,用户可以从一个固定的选项列表中进行选择,而不需要手动输入数据,从而减少了输入错误的可能性。本文将介绍如何使用 Spire.XLS for .NET 在 C# 项目中给 Excel 文档创建下拉框。
首先,您需要添加 Spire.XLS for .NET 包中包含的 DLL 文件作为 .NET 项目中的引用。DLL文件可以从此链接下载或通过 NuGet 安装。
PM> Install-Package Spire.XLS
使用 Spire.XLS,通过将字符串数组赋值给 CellRange.DataValidation.Values 属性,可以轻松实现在单元格中创建下拉框。以下是详细的步骤:
using Spire.Xls;
namespace SpireXlsDemo
{
class Program
{
static void Main(string[] args)
{
// 创建一个Workbook对象
Workbook workbook = new Workbook();
// 获取Workbook对象中的第一个Worksheet
Worksheet worksheet = workbook.Worksheets[0];
// 创建一个字符串数组
string[] values = new string[] { "山东省", "四川省", "河南省", "湖北省", "湖南省"};
// 在工作表的A1单元格设置数据验证,限制可选值为values数组中的值
worksheet.Range["A1"].DataValidation.Values = values;
// 将Workbook对象保存为Excel文件
workbook.SaveToFile("使用数组创建下拉框.xlsx", ExcelVersion.Version2016);
// 释放Workbook对象占用的资源
workbook.Dispose();
}
}
}

下面这个示例演示了在数据所在工作表中创建下拉框,只需指定数据范围并将其应用于相应单元格即可。以下是详细的步骤:
using Spire.Xls;
namespace SpireXlsDemo
{
internal class Program
{
static void Main(string[] args)
{
// 创建一个新的工作簿对象
Workbook workbook = new Workbook();
// 从文件加载工作簿数据
workbook.LoadFromFile("示例1.xlsx");
// 获取工作簿中的第一个工作表
Worksheet worksheet = workbook.Worksheets[0];
// 获取工作表中A3到A8单元格范围
CellRange dataRange = worksheet.Range["A3:A8"];
// 将B1单元格设置为下拉框,数据范围为之前获取的范围
worksheet.Range["B1"].DataValidation.DataRange = dataRange;
// 将工作簿保存到新文件中
workbook.SaveToFile("在同一工作表中创建下拉框.xlsx", ExcelVersion.Version2016);
// 释放工作簿资源
workbook.Dispose();
}
}
}

这个示例展示了如何在一个工作表中指定数据范围,并将其应用到另一个工作表的特定单元格。在此过程中,需要确保设置 Worksheet.ParentWorkbook.Allow3DRangesInDataValidation = true,从而实现在不同工作表中创建下拉框的功能。以下是详细的步骤:
using Spire.Xls;
namespace SpireXlsDemo
{
internal class Program
{
static void Main(string[] args)
{
// 创建一个Workbook对象
Workbook workbook = new Workbook();
// 从文件加载工作簿
workbook.LoadFromFile("示例2.xlsx");
// 获取第一个工作表
Worksheet worksheet1 = workbook.Worksheets[0];
// 获取第二个工作表
Worksheet worksheet2 = workbook.Worksheets[1];
// 允许在数据验证中使用3D范围
worksheet1.ParentWorkbook.Allow3DRangesInDataValidation = true;
// 定义数据范围
CellRange dataRange = worksheet2.Range["A1:A6"];
// 将数据范围应用到工作表1的B1单元格作为数据验证
worksheet1.Range["B1"].DataValidation.DataRange = dataRange;
// 保存工作簿到文件
workbook.SaveToFile("在不同的工作表中创建下拉框.xlsx", ExcelVersion.Version2016);
// 释放工作簿资源
workbook.Dispose();
}
}
}

联动下拉菜单是指根据一个下拉菜单的选择,自动更新另一个下拉菜单的选项。这个示例展示了如何在同一工作表中创建联动的下拉框(即下拉菜单)功能。通过添加 INameRange 对象并设定引用范围,以及设置数据验证的数据范围和公式来实现下拉框的联动效果。以下是详细的步骤:
using Spire.Xls;
namespace SpireXlsDemo
{
internal class Program
{
static void Main(string[] args)
{
// 创建一个新的工作簿对象
Workbook workbook = new Workbook();
// 从文件加载工作簿
workbook.LoadFromFile("示例3.xlsx");
// 获取第一个工作表
Worksheet worksheet1 = workbook.Worksheets[0];
// 获取第二个工作表
Worksheet worksheet2 = workbook.Worksheets[1];
// 添加命名范围对象并设置引用范围
Spire.Xls.Core.INamedRange namedRange = workbook.NameRanges.Add(worksheet2.Range["A1"].Text);
namedRange.RefersToRange = worksheet2.Range["B2:B7"];
namedRange = workbook.NameRanges.Add(worksheet2.Range["A2"].Text);
namedRange.RefersToRange = worksheet2.Range["C2:C7"];
namedRange = workbook.NameRanges.Add(worksheet2.Range["A3"].Text);
namedRange.RefersToRange = worksheet2.Range["D2:D7"];
namedRange = workbook.NameRanges.Add(worksheet2.Range["A4"].Text);
namedRange.RefersToRange = worksheet2.Range["E2:E7"];
namedRange = workbook.NameRanges.Add(worksheet2.Range["A5"].Text);
namedRange.RefersToRange = worksheet2.Range["F2:F7"];
// 允许数据验证中的3D范围
worksheet1.ParentWorkbook.Allow3DRangesInDataValidation = true;
// 设置数据验证的数据范围
worksheet1.Range["A2"].DataValidation.DataRange = worksheet2.Range["A1:A5"];
worksheet1.Range["B2"].DataValidation.AllowType = CellDataType.User;
// 设置公式为INDIRECT($A$2)
worksheet1.Range["B2"].DataValidation.Formula1 = "=INDIRECT($A$2)";
// 将工作簿保存到文件
workbook.SaveToFile("在同一个工作表中创建联动的下拉框.xlsx", ExcelVersion.Version2016);
// 释放工作簿资源
workbook.Dispose();
}
}
}

这个示例演示了如何在 Excel 文档中实现不同工作表之间的联动下拉框功能。通过添加 INameRange 对象并设定引用范围,在第一个工作表中设置数据验证的数据范围,在第二个工作表中设置单元格的公式来实现下拉框的联动效果。以下是详细的步骤:
using Spire.Xls;
namespace SpireXlsDemo
{
internal class Program
{
static void Main(string[] args)
{
// 创建一个Workbook对象
Workbook workbook = new Workbook();
// 从文件加载工作簿
workbook.LoadFromFile("示例4.xlsx");
// 获取第一个工作表
Worksheet worksheet1 = workbook.Worksheets[0];
// 获取第二个工作表
Worksheet worksheet2 = workbook.Worksheets[1];
// 获取数据工作表
Worksheet dataSheet = workbook.Worksheets[2];
// 添加命名范围对象并设置引用范围
Spire.Xls.Core.INamedRange namedRange = workbook.NameRanges.Add(dataSheet.Range["A2"].Text);
namedRange.RefersToRange = dataSheet.Range["B2"];
namedRange = workbook.NameRanges.Add(dataSheet.Range["A3"].Text);
namedRange.RefersToRange = dataSheet.Range["B3"];
namedRange = workbook.NameRanges.Add(dataSheet.Range["A4"].Text);
namedRange.RefersToRange = dataSheet.Range["B4"];
// 允许数据验证中的3D范围
worksheet1.ParentWorkbook.Allow3DRangesInDataValidation = true;
// 设置数据验证的数据范围
worksheet1.Range["B1"].DataValidation.DataRange = dataSheet.Range["A2:A4"];
// 设置第二个工作表的B1单元格的公式
worksheet2.Range["B1"].Formula = "=INDIRECT("+worksheet1.Name +"!B1)";
// 将工作簿保存到文件
workbook.SaveToFile("在不同的工作表中创建联动的下拉框.xlsx", ExcelVersion.Version2016);
// 释放工作簿资源
workbook.Dispose();
}
}
}

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Excel 中的筛选器是一种简单而有效的数据管理工具,尤其是在处理大型数据集时。通过使用自动筛选,您可以快速将关注范围缩小到特定的信息子集,从而更容易识别趋势、做出决策。完成分析后,您可能需要移除筛选器以恢复完整数据集的可见性。本文将介绍如何使用 Spire.XLS for .NET 通过 C# 在 Excel 中添加、应用和删除筛选器。
首先,您需要将 Spire.XLS for .NET 包含的 DLL 文件作为引用添加到您的 .NET 项目中。DLL 文件可以从此链接下载,也可以通过 NuGet 安装。
PM> Install-Package Spire.XLS
Spire.XLS for .NET 提供的 Worksheet.AutoFilters.Range 属性可用于在特定单元格区域应用自动筛选器。具体步骤如下:
using Spire.Xls;
namespace AddAutoFilter
{
class Program
{
static void Main(string[] args)
{
//创建Workbook对象
Workbook workbook = new Workbook();
//加载Excel文件
workbook.LoadFromFile(@"C:\Users\Administrator\Desktop\数据.xlsx");
//获取第一张工作表
Worksheet sheet = workbook.Worksheets[0];
//在工作表中创建自动筛选器,并指定筛选范围
sheet.AutoFilters.Range = sheet.Range["A1:C1"];
//保存结果文件
workbook.SaveToFile("Excel筛选器.xlsx", ExcelVersion.Version2016);
}
}
}

如果需要查看与特定日期或时间相关的信息,可以使用 Workbook.AutoFilters.AddDateFilter(IAutoFilter column, DateTimeGroupingType dateTimeGroupingType, int year, int month, int day, int hour, int minute, int second) 方法在指定单元格范围中应用日期筛选器。具体步骤如下:
using Spire.Xls;
using Spire.Xls.Core;
using Spire.Xls.Core.Spreadsheet.AutoFilter;
namespace AddAutoFilter
{
class Program
{
static void Main(string[] args)
{
//创建Workbook对象
Workbook workbook = new Workbook();
//加载Excel文件
workbook.LoadFromFile(@"C:\Users\Administrator\Desktop\数据.xlsx");
//获取第一张工作表
Worksheet sheet = workbook.Worksheets[0];
//在工作表中创建自动筛选器,并指定筛选范围
sheet.AutoFilters.Range = sheet.Range["A1:A38"];
//获取要设置筛选的列
IAutoFilter filtercolumn = sheet.AutoFilters[0];
//添加日期筛选器,以筛选出与2022年5月相关的数据
sheet.AutoFilters.AddDateFilter(filtercolumn, DateTimeGroupingType.Month, 2022, 5, 0, 0, 0, 0);
//应用筛选条件
sheet.AutoFilters.Filter();
//保存结果文件
workbook.SaveToFile("Excel筛选日期.xlsx", ExcelVersion.Version2016);
}
}
}

Workbook.AutoFilters.CustomFilter(FilterColumn column, FilterOperatorType operatorType, Object criteria) 方法可允许您根据特定条件创建自定义筛选器。例如,您可以筛选包含特定文本的数据。具体步骤如下:
using Spire.Xls;
using Spire.Xls.Core.Spreadsheet.AutoFilter;
namespace AddAutoFilter
{
class Program
{
static void Main(string[] args)
{
//创建Workbook对象
Workbook workbook = new Workbook();
//加载Excel文件
workbook.LoadFromFile(@"C:\Users\Administrator\Desktop\数据.xlsx");
//获取第一张工作表
Worksheet sheet = workbook.Worksheets[0];
//在工作表中创建自动筛选器,并指定筛选范围
sheet.AutoFilters.Range = sheet.Range["B1:B38"];
//获取要设置筛选的列
FilterColumn filtercolumn = (FilterColumn)sheet.AutoFilters[0];
//添加自定义筛选器,筛选出以"苏州"两个字开始的数据"
string strCrt = "苏州*";
sheet.AutoFilters.CustomFilter(filtercolumn, FilterOperatorType.Equal, strCrt);
//应用筛选条件
sheet.AutoFilters.Filter();
//保存结果文件
workbook.SaveToFile("Excel自定义筛选.xlsx", ExcelVersion.Version2016);
}
}
}

除了在 Excel 文件中添加自动筛选器外,Spire.XLS for .NET 还支持通过 Worksheet.AutoFilters.Clear() 方法删除 Excel 中的自动筛选器。具体步骤如下:
using Spire.Xls;
namespace AddAutoFilter
{
class Program
{
static void Main(string[] args)
{
//创建Workbook对象
Workbook workbook = new Workbook();
//加载Excel文件
workbook.LoadFromFile("Excel自定义筛选.xlsx");
//获取第一张工作表
Worksheet sheet = workbook.Worksheets[0];
//删除工作表中的筛选器
sheet.AutoFilters.Clear();
//保存结果文件
workbook.SaveToFile("清除筛选器.xlsx", ExcelVersion.Version2016);
}
}
}
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
如果需要在 Excel 电子表格中添加额外的信息,可以通过插入行或列来为这些新字段提供空间。此外,在数据集之间添加空白行或列还有助于有效分隔不同类别的信息,使其更易于阅读和分析。本文将演示如何使用 Spire.XLS for Python 在 Excel 中插入行和列。
此教程需要 Spire.XLS for Python 和 plum-dispatch v1.7.4。您可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.XLS
如果您不确定如何安装,请参考: 如何在 Windows 中安装 Spire.XLS for Python
Spire.XLS for Python 提供了 Worksheet.InsertRow(rowIndex: int) 和 Worksheet.InsertColumn(columnIndex: int) 方法,用于在 Excel 工作表中插入空白行和空白列。以下是详细步骤:
from spire.xls import *
from spire.xls.common import *
inputFile = "测试.xlsx"
outputFile = "插入行和列.xlsx"
# 创建Workbook对象
workbook = Workbook()
# 加载Excel文件
workbook.LoadFromFile(inputFile)
# 获取第一张工作表
worksheet = workbook.Worksheets[0]
# 工作表中插入空白行作为第5行
worksheet.InsertRow(5)
# 在工作表中插入空白列作为第4列
worksheet.InsertColumn(4)
# 保存结果文件
workbook.SaveToFile(outputFile, ExcelVersion.Version2016)
workbook.Dispose()

要在工作表中插入多行和多列,可以使用 Worksheet.InsertRow(rowIndex: int, rowCount: int) 和 Worksheet.InsertColumn(columnIndex: int, columnCount: int) 方法。以下是详细步骤:
from spire.xls import *
from spire.xls.common import *
inputFile = "测试.xlsx"
outputFile = "插入多行多列.xlsx"
# 创建Workbook对象
workbook = Workbook()
# 加载Excel文件
workbook.LoadFromFile(inputFile)
# 获取第一张工作表
worksheet = workbook.Worksheets[0]
# 在工作表中插入三行空白行
worksheet.InsertRow(5, 3)
# 在工作表中插入两列空白列
worksheet.InsertColumn(4, 2)
# 保存结果文件
workbook.SaveToFile(outputFile, ExcelVersion.Version2016)
workbook.Dispose()

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Spire.PDF 10.3.16 现已正式发布。该版本支持获取查找到的文本的字体及字体大小,优化了压缩 PDF 的效果,并且还修复了一些在转换 XPS 到 PDF 时出现的问题。详情请查阅以下内容。
新功能:
PdfDocument pdf = new PdfDocument();
pdf.LoadFromFile("test.pdf");
PdfTextFindOptions findOptions = new PdfTextFindOptions();
findOptions.Parameter = TextFindParameter.IgnoreCase;
foreach (PdfPageBase page in pdf.Pages)
{
PdfTextFinder finder = new PdfTextFinder(page);
finder.Options = findOptions;
List results = finder.Find("total");
foreach (PdfTextFragment text in results)
{
String font=text.TextStates[0].FontName;
float size = text.TextStates[0].FontSize;
String fontF = text.TextStates[0].FontFamily;
}
} 问题修复:
幻灯片标题能够帮助观众快速理解每张幻灯片的主题或要点,在 PowerPoint 演示文稿中扮演着至关重要的角色。在处理 PowerPoint 文档时,用户可能需要修改或提取幻灯片标题以满足各种需求。例如,他们可能需要根据新加的内容修改标题,或提取标题以进行总结或分析演示内容等任务。了解如何以编程方式修改或提取幻灯片标题可以极大地节省时间和精力,特别是在处理大型演示文稿时。本文将介绍如何使用 Python 和 Spire.Presentation for Python 在 PowerPoint PPTX 或 PPT 文档中修改和提取幻灯片的标题。
本教程需要用到 Spire.Presentation for Python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.Presentation
如果您不确定如何安装,请参考此教程:如何在 Windows 中安装 Spire.Presentation for Python
Spire.Presentaion for Python 提供了 ISlide.Title 属性,支持修改幻灯片的标题。具体步骤如下:
from spire.presentation.common import *
from spire.presentation import *
# 创建一个 Presentation 对象
ppt = Presentation()
# 加载一个 PowerPoint 文档
ppt.LoadFromFile("生命之水.pptx")
# 获取第二张幻灯片
slide = ppt.Slides[1]
# 更新第二张幻灯片的标题
slide.Title = "修改后的标题"
# 保存结果文档
ppt.SaveToFile("修改幻灯片标题.pptx", FileFormat.Pptx2016)
ppt.Dispose()

要从 PowerPoint 文档中提取所有幻灯片标题,首先需要遍历文档中的所有幻灯片和每个幻灯片上的所有形状。然后,找到具有 Title,CenteredTile 或 Subtitle 占位符类型的形状。最后,使用 IAutoShape.TextFrame.Text 属性获取这些形状的文本内容。具体步骤如下。
from spire.presentation.common import *
from spire.presentation import *
# 加载一个 PowerPoint 文档
ppt = Presentation()
ppt.LoadFromFile("生命之水.pptx")
# 创建一个列表以存储提取的幻灯片标题
titles = []
# 遍历文档中的所有幻灯片
for slide in ppt.Slides:
# 遍历每张幻灯片上的所有形状
for shape in slide.Shapes:
# 查找具有标题、居中标题或副标题等占位符类型的形状
if shape.Placeholder is not None and shape.Placeholder.Type in [PlaceholderType.Title, PlaceholderType.CenteredTitle, PlaceholderType.Subtitle]:
# 将形状强制转换为 IAutoShape 类型
auto_shape = shape if isinstance(shape, IAutoShape) else None
if auto_shape is not None:
# 将形状的文本添加到 titles 列表中
titles.append(auto_shape.TextFrame.Text)
# 将提取的幻灯片标题保存到文本文件中
with open("提取所有幻灯片标题.txt", "w") as file:
file.write("提取的标题:\n")
file.write("\n".join(titles))

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
在 PowerPoint 文档中,页脚是位于每个幻灯片底部的区域,通常包含文本信息如页码、日期、作者等。通过添加页脚,可以为幻灯片提供专业外观并提供重要信息。修改页脚可以调整显示的内容、样式和位置,以满足特定需求或风格。移除页脚可以在不需要额外信息或保持简洁的情况下清除底部内容。本文将介绍如何使用 Spire.Presentation for Python 在 Python 项目中添加、修改和移除 Powerpoint 文档中的页脚。
本教程需要用到 Spire.Presentation for Python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.Presentation
如果您不确定如何安装,请参考此教程:如何在 Windows 中安装 Spire.Presentation for Python
使用 Spire.Presentation,您可以在 PowerPoint 文档的每个页面底部添加页脚、页码和时间信息,确保在所有页面上保持一致的页脚内容。以下是详细的步骤:
from spire.presentation.common import *
from spire.presentation import *
# 创建一个 Presentation 对象
presentation = Presentation()
# 从文件加载演示文稿
presentation.LoadFromFile("示例1.pptx")
# 设置页脚可见
presentation.FooterVisible = True
# 设置页脚文本为 "Spire.Presentation"
presentation.SetFooterText("Spire.Presentation")
# 设置幻灯片编号可见
presentation.SlideNumberVisible = True
# 遍历演示文稿中的每一张幻灯片
for slide in presentation.Slides:
for shape in slide.Shapes:
if shape.IsPlaceholder:
# 如果是页码占位符
if shape.Placeholder.Type == PlaceholderType.SlideNumber:
autoShape = shape if isinstance(shape, IAutoShape) else None
if autoShape is not None:
text = autoShape.TextFrame.TextRange.Paragraph.Text
# 修改幻灯片编号文本为 "第X页"
autoShape.TextFrame.TextRange.Paragraph.Text = "第" + text + "页"
# 设置日期时间可见
presentation.DateTimeVisible = True
# 设置日期时间格式为 "yyyy年MM月dd日"
presentation.SetDateTime(DateTime.get_Now(), "yyyy年MM月dd日")
# 将修改后的演示文稿保存到文件
presentation.SaveToFile("添加页脚.pptx", FileFormat.Pptx2016)
# 释放 Presentation 对象资源
presentation.Dispose()

要修改 PowerPoint 文档中的页脚,首先需检查每张幻灯片的元素,找到页脚和页码占位符。然后,针对每种占位符类型,设定所需的内容和格式,确保页脚在整个文档中一致且符合要求。以下是详细的步骤:
from spire.presentation.common import *
from spire.presentation import *
def change_font(paragraph):
for textRange in paragraph.TextRanges:
# 设置文本样式为斜体
textRange.IsItalic = TriState.TTrue
# 设置文本字体
textRange.EastAsianFont = TextFont("宋体")
# 设置文本字号为12
textRange.FontHeight = 34
# 设置文本的颜色
textRange.Fill.FillType = FillFormatType.Solid
textRange.Fill.SolidColor.Color = Color.get_SkyBlue()
# 创建一个Presentation对象
presentation = Presentation()
# 从文件加载演示文稿
presentation.LoadFromFile("示例2.pptx")
# 获取第一页幻灯片
slide = presentation.Slides[0]
# 遍历幻灯片中的形状
for shape in slide.Shapes:
# 检查形状是否为占位符
if shape.Placeholder is not None:
# 获取占位符类型
type = shape.Placeholder.Type
# 如果是页脚占位符
if type == PlaceholderType.Footer:
# 将形状转换为IAutoShape类型
autoShape = shape if isinstance(shape, IAutoShape) else None
if autoShape is not None:
# 设置文本内容为"E-ICEBLUE"
autoShape.TextFrame.Text = "E-ICEBLUE"
# 修改文本的字体
change_font(autoShape.TextFrame.Paragraphs[0])
# 如果是页码占位符
if type == PlaceholderType.SlideNumber:
# 将形状转换为IAutoShape类型
autoShape = shape if isinstance(shape, IAutoShape) else None
if autoShape is not None:
# 修改文本的字体
change_font(autoShape.TextFrame.Paragraphs[0])
# 将修改后的演示文稿保存到文件
presentation.SaveToFile("修改页脚.pptx", FileFormat.Pptx2016)
# 释放Presentation对象资源
presentation.Dispose()

要删除 PowerPoint 文档中的页脚,首先需找到幻灯片中的页脚、页码、时间等占位符,然后从幻灯片的形状集合中将它们移除,确保最终页脚内容完全清除。以下是详细的步骤:
from spire.presentation.common import *
from spire.presentation import *
# 创建一个Presentation对象
presentation = Presentation()
# 从文件加载演示文稿
presentation.LoadFromFile("示例2.pptx")
# 获取第一页幻灯片
slide = presentation.Slides[0]
# 遍历幻灯片中的形状
for i in range(len(slide.Shapes) - 1, -1, -1):
# 检查形状是否为占位符
if slide.Shapes[i].Placeholder is not None:
# 获取占位符类型
type = slide.Shapes[i].Placeholder.Type
# 如果是页脚占位符
if type == PlaceholderType.Footer:
# 从幻灯片中移除它
slide.Shapes.RemoveAt(i)
# 如果是页码占位符
if type == PlaceholderType.SlideNumber:
# 从幻灯片中移除它
slide.Shapes.RemoveAt(i)
# 如果是时间占位符
if type == PlaceholderType.DateAndTime:
# 从幻灯片中移除它
slide.Shapes.RemoveAt(i)
# 将修改后的演示文稿保存到文件
presentation.SaveToFile("移除页脚.pptx", FileFormat.Pptx2016)
# 释放Presentation对象资源
presentation.Dispose()

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
在 Excel 中,冻结窗格是一个非常实用的功能,它能够锁定表格中的某些行或列,使其在滚动时始终保持可见。通过冻结窗格,用户可以轻松地在滚动工作表时保持关键数据的可见性,提高数据处理和分析的效率。而取消冻结窗格功能则允许用户释放已锁定的行或列,以恢复整个电子表格的自由浏览。本文将演示如何使用 Spire.XLS for Python 在 Excel 中冻结和取消冻结窗格。
本方案需要 Spire.XLS for Python 和 plum-dispatch v1.7.4。您可以通过以下 pip 命令将它轻松安装到 Windows 中。
pip install Spire.XLS
如果您不清楚如何安装,请参考此教程: 如何在 Windows 中安装 Spire.XLS for Python
Spire.XLS for Python 提供了 Worksheet.FreezePanes() 方法,用于冻结工作表中特定的行和列。该方法接受两个参数:rowIndex(从1开始)和 columnIndex(从1开始)。第一个参数表示行的索引,在该行之上的所有行都将被冻结。第二个参数表示列的索引,在该列左侧的所有列都将被冻结。
以下步骤展示如何使用 Spire.XLS for Python 在 Excel 中冻结特定的行和/或列:
from spire.xls import *
from spire.xls.common import *
# 指定输入和输出Excel文件的路径
inputFile = "通讯录.xlsx"
outputFile = "冻结窗格.xlsx"
# 创建Workbook实例
workbook = Workbook()
# 加载Excel文件
workbook.LoadFromFile(inputFile)
# 获取文件中的第一个工作表
sheet = workbook.Worksheets[0]
# 冻结特定的行和列
# 冻结首行
sheet.FreezePanes(2, 1)
# 或者冻结首列
# sheet.FreezePanes(1, 2)
# 或者冻结首行和首列
# sheet.FreezePanes(2, 2)
# 保存结果文件
workbook.SaveToFile(outputFile, ExcelVersion.Version2013)
workbook.Dispose()

要在 Excel 中取消冻结行和列,请使用 Worksheet.RemovePanes() 方法。详细步骤如下:
from spire.xls import *
from spire.xls.common import *
# 指定输入和输出Excel文件的路径
inputFile = "冻结窗格.xlsx"
outputFile = "取消冻结窗格.xlsx"
# 创建Workbook实例
workbook = Workbook()
# 加载Excel文件
workbook.LoadFromFile(inputFile)
# 获取文件中的第一个工作表
sheet = workbook.Worksheets[0]
# 在工作表中取消冻结行和列
sheet.RemovePanes()
# 保存结果文件
workbook.SaveToFile(outputFile, ExcelVersion.Version2013)
workbook.Dispose()
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
饼图和圆环图是两种广泛用于展现整体中各类别比例分布的流行数据可视化工具。两者均可作为强大的沟通辅助手段,使观者能快速理解每个组成部分的重要性及其与全局的关系。
尽管饼图和圆环图有许多相似之处,但它们也各自具有独特的特点,使其适用于不同的分析场景。在本文中,您将学习如何使用 Spire.Presentation for Python 在 PowerPoint 中创建饼图或圆环图。
本教程需要 Spire.Presentation for Python 和 plum-dispatch v1.7.4。您可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.Presentation
如果您不确定如何安装,请参考此教程: 如何在 Windows 中安装 Spire.Presentation for Python
饼图设计为圆形,被划分为若干个扇形或“切片”,每个切片代表整体的一部分。
使用 Spire.Presentation for Python,您可以通过调用 ISlide.Shapes.AppendChartInit(type: ChartType, rectangle: RectangleF, init: bool) 方法并在其中指定图表类型为 Pie,将饼图添加到演示文稿幻灯片中。以下是详细步骤:
from spire.presentation.common import *
from spire.presentation import *
# 创建一个Presentation对象
presentation = Presentation()
# 获取第一张幻灯片
slide = presentation.Slides[0]
# 添加饼图
rect = RectangleF.FromLTRB (40, 100, 590, 420)
chart = slide.Shapes.AppendChartInit (ChartType.Pie, rect, False)
# 设置图表标题
chart.ChartTitle.TextProperties.Text = "月消费"
chart.ChartTitle.TextProperties.IsCentered = True
chart.ChartTitle.Height = 30
chart.HasTitle = True
# 定义数据
types = ["运动与健康", "医药", "电子游戏", "餐饮","衣物","旅行"]
costs = [800, 500, 1500, 2300,1200,1000]
# 将数据添加至ChartData(存储图表数据的数据表)
chart.ChartData[0,0].Text = "Types"
chart.ChartData[0,1].Text = "Costs"
i = 0
while i < len(types):
chart.ChartData[i + 1,0].Text = types[i]
chart.ChartData[i + 1,1].NumberValue = costs[i]
i += 1
# 设置系列标签和分类标签
chart.Series.SeriesLabel = chart.ChartData["B1","B1"]
chart.Categories.CategoryLabels = chart.ChartData["A2","A7"]
# 设置系列值
chart.Series[0].Values = chart.ChartData["B2","B7"]
# 向系列中添加数据点
for i, unusedItem in enumerate(chart.Series[0].Values):
cdp = ChartDataPoint(chart.Series[0])
cdp.Index = i
chart.Series[0].DataPoints.Add(cdp)
# 为每个数据点填充不同颜色
chart.Series[0].DataPoints.get_Item(0).Fill.FillType = FillFormatType.Solid
chart.Series[0].DataPoints.get_Item(0).Fill.SolidColor.Color = Color.get_LightGray()
chart.Series[0].DataPoints.get_Item(1).Fill.FillType = FillFormatType.Solid
chart.Series[0].DataPoints.get_Item(1).Fill.SolidColor.Color = Color.get_CadetBlue()
chart.Series[0].DataPoints.get_Item(2).Fill.FillType = FillFormatType.Solid
chart.Series[0].DataPoints.get_Item(2).Fill.SolidColor.Color = Color.get_SkyBlue()
chart.Series[0].DataPoints.get_Item(3).Fill.FillType = FillFormatType.Solid
chart.Series[0].DataPoints.get_Item(3).Fill.SolidColor.Color = Color.get_LightBlue()
# 设置数据标签显示标签值和百分比值
chart.Series[0].DataLabels.LabelValueVisible = True
chart.Series[0].DataLabels.PercentValueVisible = True
# 保存结果文件
presentation.SaveToFile("饼图.pptx", FileFormat.Pptx2016)
# 释放资源
presentation.Dispose()

圆环图和饼图的主要区别在于中心存在一个“空洞”。这个空洞可以用来显示额外的信息,或者是为了保持更简洁的视觉效果。
若要在演示文稿幻灯片中添加一个圆环图,你可以将 ISlide.Shapes.AppendChartInit() 方法中的 ChartType 参数指定为 Doughnut。以下是具体的操作步骤。
from spire.presentation.common import *
from spire.presentation import *
# 创建一个Presentation对象
presentation = Presentation()
# 获取第一张幻灯片
slide = presentation.Slides[0]
# 添加饼图
rect = RectangleF.FromLTRB (40, 100, 590, 420)
chart = slide.Shapes.AppendChartInit (ChartType.Doughnut, rect, False)
# 设置图表标题
chart.ChartTitle.TextProperties.Text = "支出"
chart.ChartTitle.TextProperties.IsCentered = True
chart.ChartTitle.Height = 30
chart.HasTitle = True
# 定义数据
types = ["四川分公司", "杭州分公司", "广州分公司", "重庆分公司"]
costs = [283923,834662,719287,338478]
# 将数据添加至ChartData(存储图表数据的数据表)
chart.ChartData[0,0].Text = "Cities"
chart.ChartData[0,1].Text = "Costs"
i = 0
while i < len(types):
chart.ChartData[i + 1,0].Text = types[i]
chart.ChartData[i + 1,1].NumberValue = costs[i]
i += 1
# 设置系列标签和分类标签
chart.Series.SeriesLabel = chart.ChartData["B1","B1"]
chart.Categories.CategoryLabels = chart.ChartData["A2","A5"]
# 设置系列值
chart.Series[0].Values = chart.ChartData["B2","B5"]
# 向系列中添加数据点
for i, unusedItem in enumerate(chart.Series[0].Values):
cdp = ChartDataPoint(chart.Series[0])
cdp.Index = i
chart.Series[0].DataPoints.Add(cdp)
# 为每个数据点填充不同颜色
chart.Series[0].DataPoints.get_Item(0).Fill.FillType = FillFormatType.Solid
chart.Series[0].DataPoints.get_Item(0).Fill.SolidColor.Color = Color.get_LightGray()
chart.Series[0].DataPoints.get_Item(1).Fill.FillType = FillFormatType.Solid
chart.Series[0].DataPoints.get_Item(1).Fill.SolidColor.Color = Color.get_CadetBlue()
chart.Series[0].DataPoints.get_Item(2).Fill.FillType = FillFormatType.Solid
chart.Series[0].DataPoints.get_Item(2).Fill.SolidColor.Color = Color.get_SkyBlue()
chart.Series[0].DataPoints.get_Item(3).Fill.FillType = FillFormatType.Solid
chart.Series[0].DataPoints.get_Item(3).Fill.SolidColor.Color = Color.get_LightBlue()
# 设置数据标签显示标签值和百分比值
chart.Series[0].DataLabels.LabelValueVisible = True
chart.Series[0].DataLabels.PercentValueVisible=True
# 设置圆环图中间空洞大小
chart.Series[0].DoughnutHoleSize = 50
# 保存结果文件
presentation.SaveToFile("圆环图.pptx", FileFormat.Pptx2016)
# 释放资源
presentation.Dispose()

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