数字签名是一种加密技术,广泛用于确保文档的真实性和完整性。PowerPoint 文件(PPT)也可以包含数字签名,以验证其来源并防止在传输或存储过程中被篡改。在某些情况下,用户可能需要检查 PPT 文档是否包含数字签名,或删除这些签名。本文将详细介绍如何使用 Spire.Presentation for Python 在 Python 中检测和删除 PPT 数字签名。
本教程需要 Spire.Presentation for Python 和 plum-dispatch v1.7.4。您可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.Presentation
如果您不确定如何安装,请参考: 如何在 Windows 中安装 Spire.Presentation for Python
Spire.Presentation for Python 提供了 Presentation.IsDigitallySigned 属性,用于检测 PPT 文档是否包含数字签名。详细步骤如下:
from spire.presentation import *
# 创建Presentation类的实例
ppt = Presentation()
# 加载测试PPT文档
ppt.LoadFromFile("签名.pptx")
# 判定文档是否签名
digitallySigned = ppt.IsDigitallySigned
if digitallySigned:
print("已签名!")
else:
print("未签名,可添加签名。")
ppt.Dispose()

如果不再需要 PPT 中的数字签名,可以使用 Presentation.RemoveAllDigitalSignatures() 方法将其从文档中移除。详细步骤如下:
from spire.presentation import *
# 创建Presentation类的实例
ppt = Presentation()
# 加载测试PPT文档
ppt.LoadFromFile("签名.pptx")
# 判定文档是否签名
digitallySigned = ppt.IsDigitallySigned
# 如果已签名,将签名从文档中删除
if digitallySigned:
ppt.RemoveAllDigitalSignatures()
# 保存结果文档
ppt.SaveToFile("删除签名.pptx", FileFormat.Pptx2010)
ppt.Dispose()

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Spire.Presentation for Java 9.12.3 已发布。该版本修复了一个在转换 PPT 到图片时 OLE 对象的中文字符乱码的问题。详情请查看以下内容。
问题修复:
https://www.e-iceblue.cn/Downloads/Spire-Presentation-JAVA.html
在现代企业环境中,确保 Excel 文件与数据库之间顺畅的数据交换对于优化工作流程和提升数据分析的效率至关重要。通过高效的数据导入导出操作,企业能够充分利用数据库的强大处理能力和 Excel 的灵活性,实现更精准的业务决策支持。本文将探讨如何使用 Spire.XLS for .NET 在 C# 程序中导入 Excel 数据到数据库以及导出数据库到 Excel 文件,实现数据在 Excel 和数据库之间无缝流转。
首先,您需要将 Spire.XLS for .NET 包含的 DLL 文件作为引用添加到您的 .NET 项目中。DLL 文件可以从此链接下载,也可以通过 NuGet 安装。
PM> Install-Package Spire.XLS
借助 Spire.XLS for .NET,我们可以使用 Workbook.LoadFromFile() 方法载入 Excel 文件,并通过 CellRange.Value 属性访问单元格数据。然后,可以利用相关的数据库操作模块(如适用于 SQLite 的 System.Data.SQLite 模块)将数据写入数据库,从而实现将 Excel 文件中的数据无缝导入到数据库的功能。
以下步骤和代码以 SQLite 数据库为例,展示如何使用 C# 将 Excel 数据导入到数据库:
using System.Data.SQLite;
using Spire.Xls;
namespace ExcelToSQLite
{
class Program
{
static void Main(string[] args)
{
// Excel文件的路径
string excelFilePath = "示例.xlsx";
// SQLite数据库的文件路径
string sqliteFilePath = "output/Excel导入数据库.db";
// 打开Excel文件
Workbook workbook = new Workbook();
workbook.LoadFromFile(excelFilePath);
// 如果数据库文件不存在,则创建一个新的数据库文件
if (!File.Exists(sqliteFilePath))
{
SQLiteConnection.CreateFile(sqliteFilePath);
Console.WriteLine("新的SQLite数据库文件已创建。");
}
// 创建SQLite连接
using (SQLiteConnection connection = new SQLiteConnection($"Data Source={sqliteFilePath};Version=3;"))
{
connection.Open();
// 遍历每个工作表
foreach (Worksheet sheet in workbook.Worksheets)
{
string tableName = sheet.Name;
// 获取第一行作为列名
var columns = sheet.Rows[0].CellList;
string createTableQuery = $"CREATE TABLE IF NOT EXISTS [{tableName}] (";
foreach (var column in columns)
{
createTableQuery += $"[{column.Value}] TEXT,";
}
createTableQuery = createTableQuery.TrimEnd(',') + ");";
// 创建表
using (SQLiteCommand createTableCommand = new SQLiteCommand(createTableQuery, connection))
{
createTableCommand.ExecuteNonQuery();
}
// 插入数据
for (int i = 1; i < sheet.Rows.Length; i++) // 跳过第一行
{
var row = sheet.Rows[i];
string insertQuery = $"INSERT INTO [{tableName}] VALUES (";
foreach (var cell in row.CellList)
{
insertQuery += $"'{cell.Value?.Replace("'", "''")}',"; // 防止SQL注入
}
insertQuery = insertQuery.TrimEnd(',') + ");";
using (SQLiteCommand insertCommand = new SQLiteCommand(insertQuery, connection))
{
insertCommand.ExecuteNonQuery();
}
}
}
connection.Close();
workbook.Dispose();
}
Console.WriteLine("Excel数据已成功写入新的SQLite数据库!");
}
}
}

同样,我们可以利用数据库操作模块从数据库中读取数据,然后创建 Workbook 对象并使用 CellRange.Value 属性将读取的数据写入 Excel 工作簿中,从而实现从数据库导出数据到 Excel 文件的功能。
以下步骤和代码以 SQLite 数据库为例,展示了如何将数据库中的数据导出到 Excel 文件:
using System.Data;
using System.Data.SQLite;
using Spire.Xls;
namespace SQLiteToExcel
{
class Program
{
static void Main(string[] args)
{
// SQLite数据库的文件路径
string sqliteFilePath = "示例.db";
// Excel文件的保存路径
string excelFilePath = "output/数据库导出到Excel.xlsx";
// 创建一个新的Workbook实例
Workbook workbook = new Workbook();
// 清空默认的工作表
workbook.Worksheets.Clear();
// 创建SQLite连接
using (SQLiteConnection connection = new SQLiteConnection($"Data Source={sqliteFilePath};Version=3;"))
{
connection.Open();
// 获取所有表的名称
DataTable tables = connection.GetSchema("Tables");
// 遍历每个表
foreach (DataRow tableRow in tables.Rows)
{
string tableName = tableRow["TABLE_NAME"].ToString();
// 创建新的工作表
Worksheet sheet = workbook.Worksheets.Add(tableName);
// 获取表数据
string selectQuery = $"SELECT * FROM [{tableName}]";
using (SQLiteCommand command = new SQLiteCommand(selectQuery, connection))
{
using (SQLiteDataReader reader = command.ExecuteReader())
{
// 获取列名并写入到第一行
for (int col = 0; col < reader.FieldCount; col++)
{
sheet.Range[1, col + 1].Value = reader.GetName(col);
}
// 设置表头字体样式
sheet.Rows[0].Style.Font.IsBold = true;
sheet.Rows[0].Style.Font.Size = 12;
// 插入数据行
int rowIndex = 2;
while (reader.Read())
{
for (int col = 0; col < reader.FieldCount; col++)
{
sheet.Range[rowIndex, col + 1].Value = reader.GetValue(col).ToString();
// 自动调整列宽
sheet.AutoFitColumn(col + 1);
}
// 设置数据行的字体样式
sheet.Rows[rowIndex - 1].Style.Font.Size = 11;
rowIndex++;
}
}
}
}
connection.Close();
}
// 保存Excel文件
workbook.SaveToFile(excelFilePath);
workbook.Dispose();
Console.WriteLine("数据已成功导出到Excel文件!");
}
}
}

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Spire.Doc for Python 12.12.0 现已正式发布。最新版本支持设置 Word 装订线的位置。此外,一些已知问题也在本次更新中被成功修复,比如添加 Latex 公式时,程序抛 "Arg_InvalidCastException" 错误的问题。更多详情请查阅下面的内容。
新功能:
from spire.doc import *
from spire.doc.common import *
document = Document()
document.LoadFromFile("in.docx")
customProperties = document.CustomDocumentProperties
customProperties.Add("_MarkAsFinal", Boolean(True))
document.SaveToFile("out.docx", FileFormat.Docx2013)from spire.doc import *
from spire.doc.common import *
document = Document()
sec = None
for i in range(0, 10):
sec = document.AddSection()
sec.PageSetup.IsTopGutter = False
para = sec.AddParagraph()
txtRange = para.AppendText("Test")
sec.PageSetup.Gutter = 50 + i*10
document.SaveToFile(outputFile, FileFormat.Docx)
document.Close()from spire.doc import *
from spire.doc.common import *
document = Document()
document.LoadFromFile(inputFile)
document.SetCustomFontsFolders(document,"Angsana New")
document.SaveToFile(outputFile, FileFormat.PDF)
document.Close()from spire.doc import *
from spire.doc.common import *
document = Document()
#Load the file from disk.
document.LoadFromFile(inputFile)
for i in range(document.Sections.Count):
sec = document.Sections.get_Item(i)
#Iterate through the element under body in the section
for j in range(sec.Body.ChildObjects.Count):
docItem = sec.Body.ChildObjects.get_Item(j)
if isinstance(docItem, Paragraph):
para = docItem
if para.IsInsertRevision:
para.InsertRevision.Author="Spire.Doc Insert"
elif para.IsDeleteRevision:
para.DeleteRevision.Author="Spire.Doc Insert"
for k in range(para.ChildObjects.Count):
textRange = para.ChildObjects.get_Item(k)
if isinstance(textRange, TextRange):
if textRange.IsInsertRevision:
textRange.InsertRevision.Author="Spire.Doc Insert"
elif textRange.IsDeleteRevision:
textRange.DeleteRevision.Author="Spire.Doc Insert"
#Save to file.
document.SaveToFile(outputFile, FileFormat.Docx2013)
document.Close()问题修复:
Spire.Barcode 7.3.5 已发布。本次更新修复了扫描出的二维码的结果不正确的问题。详情请阅读以下内容。
问题修复:
https://www.e-iceblue.com/Download/download-barcode-for-net.html
将 HTML 转换为 PDF 是一种常见的需求。这种转换方式能够帮助用户轻松保存、共享和打印网页内容,同时确保文档的格式和布局始终保持一致。通过将网页、报告或文章等内容转换为 PDF 格式,用户可以创建便携式文档,方便在不同设备和平台上查看和传播,有效提升信息的可读性和实用性。
Spire.PDF for .NET 提供了一种新的方法,支持通过 ChromeHtmlConverter 将 HTML 转换为 PDF。本文将对该方法进行详细的介绍。
首先,您需要添加 Spire.PDF for .NET 包中包含的 DLL 文件作为 .NET 项目中的引用。DLL 文件可以从此链接下载或通过 NuGet 安装。
PM> Install-Package Spire.PDF
此方法需要用到 Chrome.exe 进行转换。如果您的系统尚未安装 Chrome,可以通过此链接下载安装。
你可以使用 ChromeHtmlConverter.ConvertToPdf() 方法通过 Chrome 插件将 HTML 文件转换为 PDF。此方法接受三个参数:输入 HTML 地址,输出 PDF 文件路径,以及用于自定义转换设置(例如转换超时时间、PDF 纸张大小和页边距)的 ConvertOptions 对象。具体步骤如下:
using Spire.Additions.Chrome;
namespace ConvertHtmlToPdfUsingChrome
{
internal class Program
{
static void Main(string[] args)
{
// 指定输入 URL 和输出 PDF 文件路径
string inputUrl = @"https://www.e-iceblue.cn/conversion/c-convert-pdf-to-images-jpg-png-bmp.html";
string outputFile = @"Html转PDF.pdf";
// 指定 Chrome 插件路径
string chromeLocation = @"C:\Program Files\Google\Chrome\Application\chrome.exe";
// 创建 ChromeHtmlConverter 类的实例
ChromeHtmlConverter converter = new ChromeHtmlConverter(chromeLocation);
// 创建 ConvertOptions 类的实例
ConvertOptions options = new ConvertOptions();
// 设置转换超时时间
options.Timeout = 10 * 3000;
// 设置 PDF 的纸张大小和页边距
options.PageSettings = new PageSettings()
{
PaperWidth = 8.27,
PaperHeight = 11.69,
MarginTop = 0,
MarginLeft = 0,
MarginRight = 0,
MarginBottom = 0
};
// 将 HTML 转换为 PDF
converter.ConvertToPdf(inputUrl, outputFile, options);
}
}
}

Spire.PDF for .NET 提供了生成日志的功能,方便用户在 HTML 到 PDF 转换过程中记录相关信息。具体步骤如下:
using Spire.Additions.Chrome;
namespace ConvertHtmlToPdfUsingChrome
{
internal class Program
{
static void Main(string[] args)
{
// 指定输入 URL 和输出 PDF 文件路径
string inputUrl = @"https://www.e-iceblue.cn/conversion/c-convert-pdf-to-images-jpg-png-bmp.html";
string outputFile = @"Html转PDF.pdf";
// 指定日志文件路径
string logFilePath = @"日志.txt";
// 指定 Chrome 插件路径
string chromeLocation = @"C:\Program Files\Google\Chrome\Application\chrome.exe";
// 创建 ChromeHtmlConverter 类的实例
ChromeHtmlConverter converter = new ChromeHtmlConverter(chromeLocation);
// 启用日志记录
converter.Logger = new Logger(logFilePath);
// 创建 ConvertOptions 类的实例
ConvertOptions options = new ConvertOptions();
// 设置转换超时时间
options.Timeout = 10 * 3000;
// 设置 PDF 的纸张大小和页边距
options.PageSettings = new PageSettings()
{
PaperWidth = 8.27,
PaperHeight = 11.69,
MarginTop = 0,
MarginLeft = 0,
MarginRight = 0,
MarginBottom = 0
};
// 将 HTML 转换为 PDF
converter.ConvertToPdf(inputUrl, outputFile, options);
}
}
}

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该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 提供了 PageSetup 类,用于配置或修改 Excel 工作表的页面设置。通过使用该类的 setTopMargin()、setBottomMargin()、setLeftMargin()、setRightMargin()、setHeaderMarginInch() 和 setFooterMarginInch() 等方法,你可以精确控制工作表的上下左右边距,以及页眉和页脚的边距。具体步骤如下:
import com.spire.xls.ExcelVersion;
import com.spire.xls.PageSetup;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
public class PageMargins {
public static void main(String[] args) {
// 创建 Workbook 对象
Workbook workbook = new Workbook();
// 加载 Excel 文件
workbook.loadFromFile("示例.xlsx");
// 获取第一个工作表
Worksheet sheet = workbook.getWorksheets().get(0);
// 获取工作表的 PageSetup 对象
PageSetup pageSetup = sheet.getPageSetup();
// 设置工作表的上下左右边距,以及页眉和页脚的边距
// 单位是英寸(1 英寸 = 2.54 厘米)
pageSetup.setTopMargin(1);
pageSetup.setBottomMargin(1);
pageSetup.setLeftMargin(1);
pageSetup.setRightMargin(1);
pageSetup.setHeaderMarginInch(1);
pageSetup.setFooterMarginInch(1);
// 将修改后的工作簿保存为新文件
workbook.saveToFile("设置页边距.xlsx", ExcelVersion.Version2016);
workbook.dispose();
}
}

要调整 Excel 工作表的页面方向,你可以使用 PageSetup 类的 setOrientation() 方法。具体步骤如下:
import com.spire.xls.*;
public class PageOrientation {
public static void main(String[] args) {
// 创建 Workbook 对象
Workbook workbook = new Workbook();
// 加载 Excel 文件
workbook.loadFromFile("示例.xlsx");
// 获取第一个工作表
Worksheet sheet = workbook.getWorksheets().get(0);
// 获取工作表的 PageSetup 对象
PageSetup pageSetup = sheet.getPageSetup();
//设置工作表的页面方向
pageSetup.setOrientation(PageOrientationType.Landscape);
// 将修改后的工作簿保存为新文件
workbook.saveToFile("设置页面方向.xlsx", ExcelVersion.Version2016);
workbook.dispose();
}
}

你还可以使用 PageSetup 类的 setPaperSize() 方法为 Excel 工作表指定纸张大小。可选纸张类型包括 A3、A4、A5、B4、B5、Letter、Legal 和 Tabloid 等多种规格。具体步骤如下:
import com.spire.xls.*;
public class PaperSize {
public static void main(String[] args) {
// 创建 Workbook 对象
Workbook workbook = new Workbook();
// 加载 Excel 文件
workbook.loadFromFile("示例.xlsx");
// 获取第一个工作表
Worksheet sheet = workbook.getWorksheets().get(0);
// 获取工作表的 PageSetup 对象
PageSetup pageSetup = sheet.getPageSetup();
// 设置纸张大小为 A4
pageSetup.setPaperSize(PaperSizeType.PaperA4);
// 将修改后的工作簿保存为新文件
workbook.saveToFile("设置纸张大小.xlsx", ExcelVersion.Version2016);
workbook.dispose();
}
}

通过使用 PageSetup类的setPrintArea() 方法,你可以自定义要打印的具体区域。具体步骤如下:
import com.spire.xls.ExcelVersion;
import com.spire.xls.PageSetup;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
public class PrintArea {
public static void main(String[] args) {
// 创建 Workbook 对象
Workbook workbook = new Workbook();
// 加载 Excel 文件
workbook.loadFromFile("示例.xlsx");
// 获取第一个工作表
Worksheet sheet = workbook.getWorksheets().get(0);
// 获取工作表的 PageSetup 对象
PageSetup pageSetup = sheet.getPageSetup();
// 设置工作表的打印区域为 "A1:E5"
pageSetup.setPrintArea("A1:E5");
// 将修改后的工作簿保存为新文件
workbook.saveToFile("设置打印区域.xlsx", ExcelVersion.Version2016);
workbook.dispose();
}
}

要将工作表的内容缩放到其原始大小的特定百分比,可以使用 PageSetup 类的 setZoom() 方法。具体步骤如下:
import com.spire.xls.ExcelVersion;
import com.spire.xls.PageSetup;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
public class ScalingFactor {
public static void main(String[] args) {
// 创建 Workbook 对象
Workbook workbook = new Workbook();
// 加载 Excel 文件
workbook.loadFromFile("示例.xlsx");
// 获取第一个工作表
Worksheet sheet = workbook.getWorksheets().get(0);
// 获取工作表的 PageSetup 对象
PageSetup pageSetup = sheet.getPageSetup();
// 将工作表的缩放比例设置为 90%
pageSetup.setZoom(90);
// 将修改后的工作簿保存为新文件
workbook.saveToFile("设置缩放比例.xlsx", ExcelVersion.Version2016);
workbook.dispose();
}
}

除了将工作表的内容缩放到原始大小的特定百分比外,你还可以使用 PageSetup 类的 setFitToPagesTall() 和 setFitToPagesWide() 方法将其适应到特定页数,例如1页。具体步骤如下:
import com.spire.xls.ExcelVersion;
import com.spire.xls.PageSetup;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
public class FitToPages {
public static void main(String[] args) {
// 创建 Workbook 对象
Workbook workbook = new Workbook();
// 加载 Excel 文件
workbook.loadFromFile("示例.xlsx");
// 获取第一个工作表
Worksheet sheet = workbook.getWorksheets().get(0);
// 获取工作表的 PageSetup 对象
PageSetup pageSetup = sheet.getPageSetup();
// 将工作表内容在垂直方向上调整到一页(即所有行都适应到一页)
pageSetup.setFitToPagesTall(1);
// 将工作表内容在水平方向上调整到一页(即所有列都适应到一页)
pageSetup.setFitToPagesWide(1);
// 将修改后的工作簿保存为新文件
workbook.saveToFile("将内容适应到一页.xlsx", ExcelVersion.Version2016);
workbook.dispose();
}
}

有关如何在 Excel 中设置页眉和页脚的详细说明,请参考文章:Java 在 Excel 工作表中插入页眉和页脚。
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Spire.XLS for Java 14.12.0 现已发布。该版本修复了两个在转换 HTML 文档到 Excel 文档和显示添加的 OLE 对象的图标时出现的问题。详情查看下文。
问题修复:
图表是 Excel 中常用的数据可视化工具,能够将复杂的数据转化为直观的信息。在日常工作中,你可能需要根据实际需求对图表进行操作或调整。例如,你可能需要提取图表背后的数据以进行进一步分析,调整图表大小以适应布局,将图表移动到更合适的位置,或删除过时的图表以保持工作簿整洁、有序。这篇文章将介绍如何使用 Spire.XLS for Python 和 Python 在 Excel 中提取图表的数据源、调整图表大小,以及移动和删除图表。
本教程需要 Spire.XLS for Python 和 plum-dispatch v1.7.4。您可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.XLS
如果您不确定如何安装,请参考此教程: 如何在 Windows 中安装 Spire.XLS for Python
在 Excel 中,每个图表都有其数据源,通过提取这些数据源,你可以对原始数据进行进一步分析或处理。Spire.XLS 提供了 Chart.DataRange 属性,使你能够轻松访问图表所使用的单元格范围,从而获取其中的数据。具体步骤如下:
from spire.xls import *
from spire.xls.common import *
# 创建 Workbook 对象
workbook = Workbook()
# 加载 Excel 文件
workbook.LoadFromFile("图表示例.xlsx")
# 获取包含图表的工作表
sheet = workbook.Worksheets[0]
# 获取图表
chart = sheet.Charts[0]
# 获取图表使用的数据单元格范围
cellRange = chart.DataRange
# 遍历单元格范围中的行和列
for i in range(len(cellRange.Rows)):
for j in range(len(cellRange.Rows[i].Columns)):
# 获取每个单元格的数据
print(cellRange[i + 1, j + 1].Value + " ", end='')
print("")
workbook.Dispose()

调整图表的宽度和高度可以让其更好地适配工作表中的特定区域,从而提升可读性。在 Spire.XLS 中,可以通过 Chart.Width 和 Chart.Height 属性实现这一功能。具体步骤如下:
from spire.xls import *
from spire.xls.common import *
# 创建 Workbook 对象
workbook = Workbook()
# 加载 Excel 文件
workbook.LoadFromFile("图表示例.xlsx")
# 获取包含图表的工作表
sheet = workbook.Worksheets[0]
# 获取图表
chart = sheet.Charts[0]
# 调整图表大小
chart.Width = 450
chart.Height = 300
# 保存结果文件
workbook.SaveToFile("调整图表大小.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

将图表移动到适当位置,可以使工作表布局更整洁,信息更直观。使用 Spire.XLS 提供的 Chart.LeftColumn、Chart.TopRow、Chart.RightColumn 和 Chart.BottomRow 属性,你可以将图表移动到新的位置。具体步骤如下:
from spire.xls import *
from spire.xls.common import *
# 创建 Workbook 对象
workbook = Workbook()
# 加载 Excel 文件
workbook.LoadFromFile("图表示例.xlsx")
# 获取包含图表的工作表
sheet = workbook.Worksheets[0]
# 获取图表
chart = sheet.Charts[0]
# 设置图表的新位置(起始列、起始行、结束列、结束行)
chart.LeftColumn = 2
chart.TopRow = 7
chart.RightColumn = 11
chart.BottomRow = 30
# 保存结果文件
workbook.SaveToFile("移动图表.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

删除不需要的图表可以保持工作簿的整洁。Spire.XLS 提供了 Chart.Remove() 方法,能够快速移除图表。具体步骤如下:
from spire.xls import *
from spire.xls.common import *
# 创建 Workbook 对象
workbook = Workbook()
# 加载 Excel 文件
workbook.LoadFromFile("图表示例.xlsx")
# 获取包含图表的工作表
sheet = workbook.Worksheets[0]
# 获取图表
chart = sheet.Charts[0]
# 删除图表
chart.Remove()
# 保存结果文件
workbook.SaveToFile("删除图表.xlsx", ExcelVersion.Version2013)
workbook.Dispose()
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
在 Word 中,每个段落都应传达一个独特的想法或观点,帮助以一种读者易于理解的方式来组织信息。插入新段落可以引入新概念或扩展主题的不同方面,使文本更清晰。在本文中,您将学习如何使用 Spire.Doc for Python 在 Word 中插入新段落。
本教程需要用到 Spire.Doc for Python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.Doc
如果您不确定如何安装,请参考:如何在 Windows 中安装 Spire.Doc for Python
要在文档末尾添加一个新段落,需要先通过 Document.LastSection 属性获取 Word 文档的最后一节,然后再通过 Section.AddParagraph() 方法在该节末尾添加一个段落。具体步骤如下:
from spire.doc import *
from spire.doc.common import *
# 创建Document对象
doc = Document()
# 加载Word文档
doc.LoadFromFile("测试.docx")
# 获取最后一节
section = doc.LastSection
# 在该节末尾添加段落
para = section.AddParagraph()
para.AppendText("在文档末尾添加新段落。")
# 设置段落样式
style = ParagraphStyle(doc)
style.Name = "Style1"
style.CharacterFormat.FontName = "宋体"
style.CharacterFormat.FontSize = 12
style.CharacterFormat.TextColor = Color.get_Blue()
style.CharacterFormat.Bold= True
doc.Styles.Add(style)
para.ApplyStyle("Style1")
para.Format.BeforeSpacing = 10
# 保存结果文件
doc.SaveToFile("添加段落.docx", FileFormat.Docx2016)
doc.Close()

您还可以先添加新段落,然后通过 Section.Paragraphs.Insert(int index, IParagraph paragraph) 方法将其插入到文档指定位置处。具体步骤如下:
from spire.doc import *
from spire.doc.common import *
# 创建Document对象
doc = Document()
# 加载Word文档
doc.LoadFromFile("测试.docx")
# 获取第一节
section = doc.Sections.get_Item(0)
# 添加段落并设置其文本内容
para = section.AddParagraph()
textRange = para.AppendText("在文档中间指定位置插入段落。")
# 设置字体名称、大小、颜色和样式
textRange.CharacterFormat.TextColor = Color.get_Blue()
textRange.CharacterFormat.FontName = "宋体"
textRange.CharacterFormat.FontSize = 14
textRange.CharacterFormat.UnderlineStyle = UnderlineStyle.Single
# 将添加的段落插入作为第三段
section.Paragraphs.Insert(2, para)
# 设置段落间距
para.Format.AfterSpacing = 10
# 保存结果文件
doc.SaveToFile("插入段落.docx", FileFormat.Docx2016)
doc.Close()

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