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

Spire.Cloud 纯前端文档控件

Spire.Office 9.11.0 已发布。在该版本中,Spire.XLS 支持传递值对透视表进行分组;Spire.Presentation 支持在转换 PPT 到 SVG 时设置是否将 SlidePicture 形状保存为图形标签;Spire.PDF 支持返回 PdfTextMarkupAnnotationWidget 的区域数组值。此外,该版本还成功修复了大量已知问题。详情请阅读以下内容。

版本信息如下:

获取 Spire.Office 9.11.0 请点击:

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


Spire.XLS

新功能:

问题修复:


Spire.Presentation

新功能:

问题修复:


Spire.PDF

新功能:

问题修复:

Spire.PDF 10.11.7 已发布。本次更新新增支持返回 PdfTextMarkupAnnotationWidget 的区域数组值,同时增强了 XPS 和 SVG 到 PDF 以及 PDF 到图片和 Markdown 的转换功能。此外,许多已知问题也在该版本中成功修复,如验证签名不正确的问题。详情请阅读以下内容。

新功能:

问题修复:


获取 Spire.PDF 10.11.7,请点击:

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

Spire.Office for Java 9.11.0 已正式发布。在该版本中,Spire.PDF for Java支持使用 ChromeHTMLConverter 将HTML字符串转换为PDF,还支持在使用 ChromeHTMLConverter 转换 HTML 到 PDF 时开启“背景图形”。除此之外,一些在转换、操作、保存Word、Excel、PDF 和 PPT 文档时出现的问题也已成功被修复。更多新功能及问题修复详情如下。

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

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


Spire.Doc for Java

问题修复:


Spire.XLS for Java

问题修复:


Spire.PDF for Java

新功能:

问题修复:


Spire.Presentation for Java

问题修复:

Spire PDF for Java 10.11.2 现已正式发布。最新版本支持使用 ChromeHTMLConverter 将 HTML 字符串转换为 PDF。此外,一些已知问题也在本次更新中被成功修复,比如 PDF 转 PDFA2A 时,内容丢失的问题。详情请阅读以下内容。

新功能:

问题修复:


获取 Spire PDF for Java 10.11.2 请点击:

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

Spire.PDF for Python 10.11.2 已发布。本次更新修复了一些已知问题,如 Spire.XLS 和 Spire.PDF 同时使用抛异常的问题。详情请阅读以下内容。

问题修复:


获取 Spire.PDF for Python 10.11.2 请点击:

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

在 Excel 中,对透视表数据进行分组可以将相似的数据归类为有意义的类别,从而更直观地分析数据。例如,按月或按年对日期分组,可以清晰地了解数据随时间变化的趋势;将数字按价格区间或年龄段分组,有助于直观呈现数据分布特点并便于对比和分析。本文将详细讲解如何使用 Spire.XLS for .NET 在 C# 基于日期和数字对 Excel 透视表数据进行分组。

安装 Spire.XLS for .NET

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

PM> Install-Package Spire.XLS

C# 基于日期对 Excel 透视表数据进行分组

Spire.XLS for .NET 提供了 IPivotField.CreateGroup(DateTime start, DateTime end, PivotGroupByTypes[] groupByArray) 方法,支持按日期和时间对数据透视表的特定字段的数据进行分组。

以下是该方法的参数说明:

以下是 Spire.XLS for .NET 支持的日期和时间分组类别:

以下是使用 Spire.XLS for .NET 基于日期和时间对数据透视表数据进行分组的具体步骤:

  • C#
using Spire.Xls;
using Spire.Xls.Core.Spreadsheet.PivotTables;
using System;

namespace GroupDataInPivotTable
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 创建 Workbook 实例
            Workbook workbook = new Workbook();
            // 加载 Excel 文件
            workbook.LoadFromFile("示例1.xlsx");

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

            // 获取工作表中的第一个数据透视表
            XlsPivotTable pt = sheet.PivotTables[0] as XlsPivotTable;

            // 获取 “日期” 字段
            PivotField ptField = pt.PivotFields["日期"] as PivotField;

            // 指定起始和结束日期时间
            DateTime start = new DateTime(2024, 1, 1);
            DateTime end = new DateTime(2024, 10, 14);

            // 创建分组类别数组,例如按天和按月
            PivotGroupByTypes[] groupByTypes = new PivotGroupByTypes[]
            {
                PivotGroupByTypes.Days,
                PivotGroupByTypes.Months
            };

            // 根据指定的分组类别对数据分组
            ptField.CreateGroup(start, end, groupByTypes);

            // 刷新数据透视表
            pt.Cache.IsRefreshOnLoad = true;

            // 保存结果文件
            workbook.SaveToFile("日期分组.xlsx", FileFormat.Version2016);
            workbook.Dispose();
        }
    }
}

C# 基于日期对 Excel 透视表数据进行分组

C# 基于数字对 Excel 透视表数据进行分组

除了按日期和时间分组数据,Spire.XLS for .NET 还支持通过 IPivotField.CreateGroup(double startValue, double endValue, double intervalValue) 方法根据数字范围对数据进行分组。

以下是该方法的参数说明:

以下是使用 Spire.XLS for .NET 基于数字对数据透视表数据进行分组的具体步骤:

  • C#
using Spire.Xls;
using Spire.Xls.Core.Spreadsheet.PivotTables;

namespace GroupDataInPivotTable
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 创建 Workbook 实例
            Workbook workbook = new Workbook();
            // 加载 Excel 文件
            workbook.LoadFromFile("示例2.xlsx");

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

            // 获取工作表中的第一个数据透视表
            XlsPivotTable pt = pivotSheet.PivotTables[0] as XlsPivotTable;

            // 对 “销售额” 字段按数字范围分组
            PivotField ptField = pt.PivotFields["销售额"] as PivotField;
            ptField.CreateGroup(1500, 4500, 200);

            // 计算数据透视表数据
            pt.CalculateData();
            // 刷新数据透视表
            pt.Cache.IsRefreshOnLoad = true;

            // 保存结果文件
            workbook.SaveToFile("数字分组.xlsx", FileFormat.Version2016);
            workbook.Dispose();
        }
    }
}

C# 基于数字对 Excel 透视表数据进行分组

申请临时 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 命令将它们轻松安装到 VS Code 中。

pip install Spire.Doc

在 Python 中合并 Word 中的表格

使用 Spire.Doc for Python,您可以通过将其他表格中的所有行复制到目标表格中,然后删除这些表格,来实现多个表格的合并。以下是具体的操作步骤。

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


# 创建一个 Document 类的实例
doc = Document()
 
# 加载 Word 文档
doc.LoadFromFile("/Word表格.docx")
 
# 获取第一节
section = doc.Sections[0]
 
# 获取该节中的第一个和第二个表格
table1 = section.Tables[0] if isinstance(section.Tables[0], Table) else None
table2 = section.Tables[1] if isinstance(section.Tables[1], Table) else None

# 将第二个表格中的行添加到第一个表格中
for i in range(table2.Rows.Count):
    table1.Rows.Add(table2.Rows[i].Clone())
 
# 删除第二个表格
section.Tables.Remove(table2)

# 保存结果文件
section.Document.SaveToFile("/合并表格.docx", FileFormat.Docx2013)
doc.Close()

在 Python 中合并 Word 中的表格

在 Python 中拆分 Word 中的表格

要将一个表格拆分为两个或多个表格,您需要先创建一个新表格,然后将原表格中指定的行复制到新表格中,最后从原表格中删除这些行。以下是具体的操作步骤。

  • Python
from spire.doc import *
from spire.doc.common import *
 
 
# 创建一个 Document 实例
doc = Document()
 
# 加载一个 Word 文档
doc.LoadFromFile("/合并表格.docx")

# 获取第一节
section = doc.Sections.get_Item(0)
 
# 获取节中的第一个表格
table = section.Tables[0] if isinstance(section.Tables[0], Table) else None
 
# 指定从第五行开始拆分
splitIndex = 4
 
# 新建一个 Table 对象
newTable = Table(section.Document, True)
 
# 将这些行(第五行到最后一行)添加到新表中
for i in range(splitIndex, table.Rows.Count):
    newTable.Rows.Add(table.Rows[i].Clone())

# 从原表格删除这些行
for i in range(table.Rows.Count - 1, splitIndex - 1, -1):
    table.Rows.RemoveAt(i)
 
# 将新的表格添加到该节中
section.Tables.Add(newTable)
 
# 保存结果文档
section.Document.SaveToFile("/拆分表格.docx", FileFormat.Docx2013)
doc.Close()

在 Python 中拆分 Word 中的表格

申请临时 License

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

向 PDF 文档添加交互元素,如导航按钮、弹窗提示以及文件打开按钮,可以显著增强用户的参与度和文档的功能性,同时使得文档更加专业。借助 Spire.PDF for Java 库,开发者能够轻松地将这些互动功能整合到 PDF 文档中,从而创造出既多样化又用户友好的文档内容。本文将介绍如何使用 Spire.PDF for Java 通过 Java 代码在 PDF 文档中添加各种动作。

安装 Spire.PDF for Java

首先,您需要在 Java 程序中添加 Spire.Pdf.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.pdf</artifactId>
        <version>12.9.0</version>
    </dependency>
</dependencies>

如何使用 Spire.PDF for Java 向 PDF 添加动作

Spire.PDF for Java 为开发者提供了向 PDF 文档添加各种动作的能力,例如文档内跳转动作、文件打开动作、音频播放动作和 JavaScript 执行动作。以下是常用动作对应的类及其描述的表格:

类名 描述
PdfGoToAction 表示跳转到当前文档中的特定位置的动作
PdfLaunchAction 表示打开文件的动作
PdfJavaScriptAction 表示执行 JavaScript 代码的动作
PdfSoundAction 表示播放音频的动作

有关更多动作类及其描述,请参考 Spire.PDF for Java 动作相关 API 文档。

向 PDF 文档添加动作主要通过以下两种方式:

1、使用注释添加动作

此方法通过创建一个动作并将其链接到页面上的注释来实现。当用户点击注释时,动作将被触发。

步骤:

2、将动作分配到文档事件

动作还可以分配到文档级别的事件(例如打开、关闭或打印文档)。当指定的事件发生时,与其绑定的动作会自动触发。

步骤:

使用 Java 在 PDF 中创建文档内跳转动作

开发者可以使用 PdfGoToAction 类在 PDF 文档中创建导航动作,让用户跳转到文档中的特定位置。以下是一个 Java 代码示例,演示如何在 PDF 文档中创建导航动作。

  • Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.actions.PdfGoToAction;
import com.spire.pdf.annotations.PdfActionAnnotation;
import com.spire.pdf.general.PdfDestination;
import com.spire.pdf.graphics.PdfBrushes;
import com.spire.pdf.graphics.PdfStringFormat;
import com.spire.pdf.graphics.PdfTextAlignment;
import com.spire.pdf.graphics.PdfTrueTypeFont;

import java.awt.*;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;

public class AddNavigationActionPDF {
    public static void main(String[] args) {
        // 创建一个 PdfDocument 实例
        PdfDocument pdf = new PdfDocument();

        // 加载 PDF 文件
        pdf.loadFromFile("示例.pdf");

        // 创建一个 PdfDestination 对象
        PdfDestination destination = new PdfDestination(2, new Point2D.Float(0, 0), 0.8f);
        // 使用 PdfDestination 对象创建一个 PdfGoToAction 对象
        PdfGoToAction goToAction = new PdfGoToAction(destination);

        // 在第一页上绘制一个矩形和提示文本
        Rectangle2D rect = new Rectangle2D.Float(20, 35, 100, 15);
        pdf.getPages().get(0).getCanvas().drawRectangle(PdfBrushes.getLightGray(), rect);
        PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("HarmonyOS Sans SC", Font.BOLD, 12), true);
        PdfStringFormat format = new PdfStringFormat(PdfTextAlignment.Center);
        pdf.getPages().get(0).getCanvas().drawString("点击跳转到第2页", font, PdfBrushes.getBlack(), rect, format);

        // 使用 PdfGoToAction 对象创建一个 PdfActionAnnotation 对象
        PdfActionAnnotation actionAnnotation = new PdfActionAnnotation(rect, goToAction);

        // 将注释添加到第一页
        pdf.getPages().get(0).getAnnotations().add(actionAnnotation);

        // 保存文档
        pdf.saveToFile("output/PDF文档内跳转动作.pdf");
        pdf.close();
    }
}

使用 Java 在 PDF 中创建文档内跳转动作

使用 Java 在 PDF 中创建文件打开动作

开发者可以使用 PdfLaunchAction 类在 PDF 文档中创建文件打开动作。以下是一个 Java 代码示例,展示如何向 PDF 文档添加文件打开动作。

  • Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.actions.PdfFilePathType;
import com.spire.pdf.actions.PdfLaunchAction;
import com.spire.pdf.annotations.PdfActionAnnotation;
import com.spire.pdf.graphics.PdfBrushes;
import com.spire.pdf.graphics.PdfStringFormat;
import com.spire.pdf.graphics.PdfTextAlignment;
import com.spire.pdf.graphics.PdfTrueTypeFont;

import java.awt.*;
import java.awt.geom.Rectangle2D;

public class AddFileOpenActionPDF {
    public static void main(String[] args) {
        // 创建一个 PdfDocument 实例
        PdfDocument pdf = new PdfDocument();

        // 加载 PDF 文件
        pdf.loadFromFile("示例.pdf");

        // 创建一个 PdfLaunchAction 对象并设置文件路径
        PdfLaunchAction launchAction = new PdfLaunchAction("C:/示例.pdf", PdfFilePathType.Absolute);

        // 在第一页上绘制一个矩形和提示文本
        Rectangle2D rect = new Rectangle2D.Float(20, 35, 100, 15);
        pdf.getPages().get(0).getCanvas().drawRectangle(PdfBrushes.getLightGray(), rect);
        PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("HarmonyOS Sans SC", Font.BOLD, 12), true);
        PdfStringFormat format = new PdfStringFormat(PdfTextAlignment.Center);
        pdf.getPages().get(0).getCanvas().drawString("点击打开文件", font, PdfBrushes.getBlack(), rect, format);

        // 使用 PdfLaunchAction 对象创建一个 PdfActionAnnotation 对象
        PdfActionAnnotation actionAnnotation = new PdfActionAnnotation(rect, launchAction);

        // 将注释添加到第一页
        pdf.getPages().get(0).getAnnotations().add(actionAnnotation);

        // 保存文档
        pdf.saveToFile("output/PDF文件打开动作.pdf");
        pdf.close();
    }
}

使用 Java 在 PDF 中创建文件打开动作

使用 Java 在 PDF 中创建音频播放动作

PdfSoundAction 类可用于在 PDF 文档中处理音频播放,从而实现背景音乐、语音提醒等功能。以下是一个 Java 代码示例,演示如何在 PDF 文档中创建音频动作。

  • Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.actions.PdfSoundAction;
import com.spire.pdf.annotations.PdfActionAnnotation;
import com.spire.pdf.general.PdfSoundChannels;
import com.spire.pdf.general.PdfSoundEncoding;
import com.spire.pdf.graphics.PdfImage;

import java.awt.geom.Rectangle2D;

public class AddSoundActionPDF {
    public static void main(String[] args) {
        // 创建一个 PdfDocument 实例
        PdfDocument pdf = new PdfDocument();

        // 加载 PDF 文件
        pdf.loadFromFile("示例.pdf");

        // 创建一个 PdfSoundAction 对象并设置音频属性
        PdfSoundAction soundAction = new PdfSoundAction("Wave.wav");
        soundAction.setRepeat(false); // 禁用循环播放
        soundAction.getSound().setBits(16); // 设置音频位数
        soundAction.getSound().setChannels(PdfSoundChannels.Stereo); // 设置立体声通道
        soundAction.getSound().setEncoding(PdfSoundEncoding.Signed); // 设置音频编码
        soundAction.getSound().setRate(44100); // 设置采样率

        // 在第一页上绘制声音图标
        PdfImage image = PdfImage.fromFile("Sound.jpg");
        pdf.getPages().get(0).getCanvas().drawImage(image, new Rectangle2D.Float(40, 40, image.getWidth(), image.getHeight()));

        // 使用 PdfSoundAction 对象在声音图标的位置创建一个 PdfActionAnnotation 对象
        Rectangle2D rect = new Rectangle2D.Float(40, 40, image.getWidth(), image.getHeight());
        PdfActionAnnotation actionAnnotation = new PdfActionAnnotation(rect, soundAction);

        // 将注释添加到第一页
        pdf.getPages().get(0).getAnnotations().add(actionAnnotation);

        // 保存文档
        pdf.saveToFile("output/PDF音频播放动作.pdf");
        pdf.close();
    }
}

使用 Java 在 PDF 中创建音频播放动作

使用 Java 在 PDF 中创建 JavaScript 动作

PdfJavaScriptAction 类允许开发者在 PDF 文档中创建 JavaScript 动作,从而实现动态表单的创建、用户输入的验证以及任务的自动化等功能。以下是一个 Java 代码示例,展示如何向 PDF 文档添加 JavaScript 动作。

  • Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.actions.PdfJavaScriptAction;

public class AddJavaScriptActionPDF {
    public static void main(String[] args) {
        // 创建一个 PdfDocument 实例
        PdfDocument pdf = new PdfDocument();

        // 加载 PDF 文件
        pdf.loadFromFile("示例.pdf");

        // 定义 JavaScript 代码,并使用它创建一个 PdfJavaScriptAction 实例
        String jsCode = """
                app.alert({
                    cMsg: '欢迎阅读销售数据分析报告!\\n\\n这份报告包含了公司在过去一年内的销售数据,包括销售额、产品类别、销售地区和销售人员等信息。希望这份报告能帮助您了解公司的销售情况,识别销售趋势并制定相应的决策。',
                    nIcon: 3,
                    cTitle: '文档介绍'
                });
                """;
        PdfJavaScriptAction javaScriptAction = new PdfJavaScriptAction(jsCode);

        // 设置 JavaScript 动作为 PDF 文件打开后执行的动作
        pdf.setAfterOpenAction(javaScriptAction);

        // 保存文档
        pdf.saveToFile("output/PDF JavaScript动作.pdf");
        pdf.close();
    }
}

使用 Java 在 PDF 中创建 JavaScript 动作

申请临时 License

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

Spire.Doc for Java 12.11.9 现已正式发布。该版本优化了 Word 到 PDF 的转换,同时还还修复了一些在加载、比较 Word 文档时出现的问题。详情请查阅以下内容。

问题修复:


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

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

Spire.PDF for C++ 10.7.3 现已正式发布。最新版本修复了在转换 OFD 为 PDF 时,高亮文本效果不正确的问题。更多详情请查阅以下内容。

问题修复:


获取 Spire.PDF for C++ 10.7.3 请点击:

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