近日,GrapeCity Documents 正式迎来其V6.2 的发布更新,能够支持 SpreadJS 中 .sjs 类型的文件。这一重大更新将为用户带来更多地惊喜。

.sjs文件有两个关键优势:空间更小且导入导出速度更快。通过采用 .sjs格式,GcExcel实现了更高效的文件压缩,从而使文件大小大幅减小。这不仅节省了存储空间,还方便了文件的传输和共享。此外,GcExcel还针对 .sjs文件进行了优化,使其在导入和导出过程中的速度得到显著提升。

下面将详细介绍 GrapeCity Documents V6.0 Update2 中的新特性,在此之前,如果您已经在使用了GrapeCity Documents产品,希望进一步了解新功能,可前往葡萄城官网下载最新版产品安装包,以便进行同步体验。

以下是本次发布的关键内容:

1. 服务端表格组件 GrapeCity Documents for Excel 更新说明

支持SpreadJS的.sjs文件格式

在 GcExcel 的 V6.0 Update 2 版本中,增加了对 SpreadJS .sjs 文件格式的支持。通过导出为 .sjs 格式,可以实现更短的导出时间和更小的文件尺寸。现在,您可以将 xlsx、xlsm、csv、ssjson 等格式的文件导出为 .sjs 格式,以便更高效地处理数据。

新版本增强了Workbook类上的open和save方法,支持.sjs文件,当加载保存.sjs文件时,可以通过OpenFileFormat和SaveFileFormat,来选择Sjs枚举项。

由于对.sjs文件格式的支持,使得新版本可以满足以下功能:

  • 快速将Excel文件转换为.sjs格式。
  • 以更小的占用空间保存文件。
  • 从.sjs文件中压缩的JSON文件生成单个JSON字符串
  • 使各种可用选项自定义SpreadJS.sjs文件的打开和保存

除此之外,服务端表格组件还新添加两个类,SjsOpenOptionsSjsSaveOptions。在导入/导出.sjs文件时,可以通过这两个类来定制包含/排除特定的功能。

以下代码用于展示加载 SpreadJS 的 .sjs 文件,并通过使用 SjsOpenOptions 排除公式和样式,然后使用 GcExcel 打开并保存该文件的过程。

 // 创建一个新的工作簿
Workbook workbook = new Workbook();
InputStream stream = this.getResourceStream("sjs\\LoanDetails.sjs"); // .sjs 文件格式的 OpenOptions
SjsOpenOptions openOptions = new SjsOpenOptions();
openOptions.setIncludeFormulas(false);
openOptions.setIncludeStyles(false); // GcExcel 支持使用 OpenOptions 打开 .sjs 文件格式
workbook.open(stream, openOptions); // 保存为 .sjs 文件
workbook.save("OpenSjsWithOpenOptions.sjs");



形状文本的对齐选项

GcExcel在ITextRange接口中添加了新的TextAlignment属性,用于获取或设置形状中文本范围或段落的对齐方式。该属性可以给文本设置对齐方式,如左对齐、右对齐、居中、分散和两端对齐。在需要按照UI设计规则或按照数据格式对齐文本(例如将文本左对齐或将数字右对齐)的场景中非常有帮助。

以下代码用于展示将形状中多个段落的对齐方式设置为居中和左对齐:

 IShape shape = worksheet.Shapes.AddShape(AutoShapeType.RoundedRectangle, (double)10, (double)10, (double)320, (double)150);
shape.TextFrame.TextRange.TextAlignment = TextAlignmentAnchor.Left;
shape.TextFrame.TextRange.Font.Name = "Calibri";
shape.TextFrame.TextRange.Font.Size = 16;
shape.TextFrame.TextRange.Font.Color.RGB = Color.Black;
shape.TextFrame.TextRange.Font.Underline = TextUnderlineType.None; shape.TextFrame.TextRange.Paragraphs.Add("Quarterly Results");
shape.TextFrame.TextRange.Paragraphs[0].TextAlignment = TextAlignmentAnchor.Center;
shape.TextFrame.TextRange.Paragraphs[0].Font.Size = 28;
shape.TextFrame.TextRange.Paragraphs[0].Font.Underline = TextUnderlineType.Single;
shape.TextFrame.TextRange.Paragraphs.Add(""); shape.TextFrame.TextRange.Paragraphs.Add("Business Domain: E-Commerce");
shape.TextFrame.TextRange.Paragraphs[2].TextAlignment = TextAlignmentAnchor.Left; shape.TextFrame.TextRange.Paragraphs.Add("Quarter: Q4");
shape.TextFrame.TextRange.Paragraphs[3].TextAlignment = TextAlignmentAnchor.Left;

在形状和图表中设置垂直文本方向

在某些文档应用中,使用者希望将文本方向设置为垂直方向。GcExcel在形状和图表的API中添加了Direction属性:

  • IShape.TextFrame.Direction:用于形状的文本方向。
  • ITickLabels.Direction:用于图表轴上刻度标签的文本方向。
  • IChartTitle.Direction 或 IChartTitle.TextFrame.Direction:用于图表标题的文本方向。
  • IAxisTitle.Direction 或 IAxisTitle.TextFrame.Direction:用于坐标轴标题的文本方向。
  • IDataLabels.Direction:用于指定系列数据标签的文本方向。
  • IDataLabel.Direction 或 IDataLabel.TextFrame.Direction:用于图表数据点上数据标签的文本方向。

Direction属性接受TextDirection枚举选项,可设置文本在以下方向上的方向:

  • TextDirection.Horizontal:表示文本水平显示。
  • TextDirection.Vertical:表示文本垂直显示。
  • TextDirection.Rotate90:表示文本将旋转90度。
  • TextDirection.Rotate270:表示文本将旋转270度。
  • TextDirection.Stacked:表示文本将堆叠显示,读取顺序从左到右。
  • TextDirection.StackedRtl:表示文本将堆叠显示,读取顺序从右到左。

以下代码用以将文本的TextDirection设置为Stacked方向:

var shape = worksheet.Shapes.AddShape(AutoShapeType.Rectangle, worksheet.Range["C2:F12"]);
shape.TextFrame.TextRange.Add("欢迎来到葡萄城"); //将文本方向设置为堆叠,并且文本的阅读顺序从左到右。
shape.TextFrame.Direction = TextDirection.Stacked;

支持双面打印 - 该特性仅适用于.NET版本

有时候使用者需要在一页的两面打印一个包含长工作表的工作簿。GcExcel .NET提供了PrintOutOptions类中的Duplex枚举来启用/禁用页面上的双面打印。该枚举共有四个选项,用户可以根据需要选择打印工作簿的方式:

Duplex.Default:表示打印机的默认双面打印设置。

Duplex.Simplex:表示单面打印。

Duplex.Vertical: 表示双面垂直打印。

Duplex.Horizontal: 表示双面水平打印。

以下代码用于 展示将以双面垂直打印方式打印三份工作簿副本。

// 创建打印选项。
PrintOutOptions options = new PrintOutOptions();
// 设置打印的打印机名称为 "Printer"。
options.ActivePrinter = "Printer";
// 打印3份副本。
options.Copies = 3;
// 设置双面垂直打印。
options.Duplex = System.Drawing.Printing.Duplex.Vertical;
// 使用 "Printer" 打印此工作簿。
workbook.PrintOut(options);

2. 服务端 PDF 组件 GrapeCity Documents for PDF 更新说明

对PDF文件打开和保存进行增强

在GcExcel V6.0 Update 2 版本中,GcPdf在处理由其他软件生成的现有PDF文档方面进行了改进,并提供以下优势:

  1. GcPdf现在可以加载和保存可能不严格符合PDF规范的PDF文档。
  2. GcPdf将保留嵌入在PDF文档中的任何非PDF规范的自定义数据。
  3. 加载PDF文档的平均速度得到了改善。

这些改进使得GcPdf能够更好地处理各种PDF文档,即使这些文档不是完全符合PDF规范或包含一些非标准的数据。同时,加载PDF文档的速度也得到了提升。

在密码未知的情况下处理受密码保护的文件

GcPdf允许在不指定密码的情况下处理受密码保护的文件。在加载受密码保护的文件后,您可以执行以下操作而无需指定密码:

  • 读取/写入不基于PDF字符串对象的属性,例如:
  • 您可以获取/设置CheckBoxField或RadioButtonField的值。
  • 获取某个文档的特定统计信息,例如获取页面数、注释数等。
  • 获取或更改文档元数据,因为元数据通常未加密。
  • 更改某些类型字段的值:CheckBoxField、RadioButtonField;可以更改TextBoxField、CombTextField的值,但有一些限制。
  • 如果可以在不使用PDF字符串的情况下定义新对象,您可以添加该对象。例如,您可以向一个页面或所有页面添加一个SquareAnnotation。

新增了DecryptionOptions类来表示解密选项。当加载加密的PDF时,您可以将其作为(可选)参数传递给GcPdfDocument.Load()方法。通过将DecryptionOptions.ThrowExceptionIfInvalidPassword设置为false(默认为true),以允许加载受密码保护的PDF而无需指定其密码。另一个相关的标志是DecryptionOptions.ThrowExceptionIfUnsupportedSecurityOptions,默认情况下也为true。将其设置为false可以允许GcPdf加载具有未知或损坏的安全处理程序的文档。

以下代码示例展示了如何向受密码保护的PDF添加注释,而无需指定密码:

using var fs = File.OpenRead("financial-report.pdf");
var doc = new GcPdfDocument();
doc.Load(fs, new DecryptionOptions() { ThrowExceptionIfInvalidPassword = false, ThrowExceptionIfUnsupportedSecurityOptions = false });
// 获取第一页的尺寸:
var page = doc.Pages[0];
var pageSize = page.Size;
// 添加一个方形注释:
SquareAnnotation sa = new SquareAnnotation();
sa.Page = page;
sa.Rect = new RectangleF(10, 10, pageSize.Width - 20, pageSize.Height - 20);
sa.Color = Color.Red;
doc.Save("AnnotationAdded.pdf");



3. 服务端 Word 组件 GrapeCity Documents for Word 更新说明

对于Office Math函数和转换为MathML的支持

在新版本中,GcWord支持在Word文档中创建和编辑Office Math内容。GcWord中的OMath支持包括完整的API,用于处理在科学、数学和通用目的的Word文档中广泛使用的数学符号、公式和方程。以下是OMath支持引入的新API的主要亮点:

  • 用于表示GcWord中的Office Math内容的两个主要类是OMathParagraph和OMath。OMathParagraph表示带有Office Math内容的段落,而OMath表示内联的Office Math区域,可以包含在OMathParagraph或常规段落中。
  • 提供了专门的类(如OMathFunction、OMathEquationArray、OMathRadical等),用于表示OMath区域中的各种数学结构。这些类都是从通用的抽象OMathStruct基类派生而来。
  • 可以通过新的RangeBase属性(OMathParagraphs、OMaths、OMathStructs、OMathElements和OMathMatrixRows)访问Office Math内容。
  • 为了方便添加MS Word支持的内置方程,RangeBase、OMathParagraph、OMath和OMathElement类上提供了方便的Add/Insert方法,接受一个OMathBuiltInEquation枚举值,用于识别所需的方程。
  • 包含一个实用的MathMLConverter类,可以方便地在GcWord的OMath内容和MathML之间进行转换。

有关GcWord中OMath支持的详细信息,请参阅Office Math文档。

以下代码用于展示使用OMath类和其函数将一个方程添加到Word文件中的过程。

var sampleDoc = new GcWordDocument();
var om = sampleDoc.Body.AddParagraph().AddOMathParagraph().AddOMath();
om.AddRun("Γ").Font.Italic = false;
om.AddDelimiter(new string[] { "z" });
om.AddRun("=");
var nary = om.AddNary("", "0", "∞", "∫");
nary.Base.AddSuperscript("t", "z-1");
nary.Base.AddSuperscript("e", "-t");
nary.Base.AddRun("dt");
om.AddRun("=");
var frac = om.AddFraction();
var superscript = frac.Numerator.AddSuperscript("e", "-");
superscript.Superscript.AddRun("γ").Font.Bidi = true;
superscript.Superscript.AddRun("z");
frac.Denominator.AddRun("z");
nary = om.AddNary("", "k=1", "∞", "∏");
superscript = nary.Base.AddSuperscript("", "-1");
var delimiter = superscript.Base.AddDelimiter();
var item = delimiter.Items.Add();
item.AddRun("1+");
item.AddFraction("z", "k", null);
superscript = nary.Base.AddSuperscript("e", "z");
superscript.Superscript.AddRun("/").OMathFormat.IsLiteral = true;
superscript.Superscript.AddRun("k");
om.AddRun(", γ≈0.577216");
sampleDoc.Save("MathEquation.docx");

以上GrapeCity Documents V6.2的新特性介绍,如果您对产品感兴趣,欢迎前往葡萄城官网下载产品安装包,同步体验GrapeCity Documents V6.2的全新功能。

GrapeCity Documents V6.0 Update 2发布,新增支持SpreadJS的.sjs文件格式的更多相关文章

  1. [转]Ubuntu Tweak 0.8.7 发布:支持 Ubuntu 14.04

    原文网址:http://www.oschina.net/news/51054/ubuntu-tweak-0-8-7 这是我开发 Ubuntu Tweak 七年以来第一次没在 Ubuntu 正式发布之前 ...

  2. VMware vSphere 7.0 Update 2 发布 - 数据中心虚拟化和 Kubernetes 云原生应用引擎

    2021 年 3 月 9 日,VMware 发布了 vSphere 7 Update 2.它可以通过 VMware Customer Connect 和 vSphere Lifecycle Manag ...

  3. Excelize 2.4.0 正式版发布, 新增 152 项公式函数支持

    Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准.可以使用它来读取.写入由 Microsoft Exc ...

  4. Swoole 4.1.0 正式版发布,支持原生 Redis/PDO/MySQLi 协程化

    重大新特性 支持 Redis/PDO/MySQLi 从4.1.0版本开始支持了对PHP原生Redis.PDO.MySQLi协程化的支持. 可使用Swoole\Runtime::enableCorotu ...

  5. DevEco Device Tool 3.0 Release 新版本发布,支持多人共享开发

    DevEco Device Tool 是面向智能设备开发者提供的一站式集成开发环境,支持 HarmonyOS Connect 的组件按需定制,支持代码编辑.编译.烧录和调试.性能监测等功能,支持 C/ ...

  6. FineUIPro v6.0.0 大版本更新,快来围观!

    本月末(2019-09-20),我们会发布激动人心的 FineUI v6.0.0 版本,这个版本将带来一系列的重要更新! 在列举新版本特性之前,我们先来回顾下每次发布大版本的关键时间点: v1.0.0 ...

  7. GrapeCity Documents (服务端文档API组件) V3.0 正式发布

    近日,葡萄城GrapeCity Documents(服务端文档API组件)V3.0 正式发布! 该版本针对 Excel 文档.PDF 文档和 Word 文档的 API 全面更新,加入了用于生成 Exc ...

  8. TypeScript 0.9.1 发布,新增 typeof 关键字

    TypeScript 0.9.1 发布了,该版本提升了编译器和语言的性能,增加新的语言特性 typeof ,更好的 this 处理等.详细介绍请看发行说明. TypeScript 是微软新推出的一种语 ...

  9. 2019 年 GrapeCity Documents 产品路线图

    前言 | 问题背景 随着软件行业引入新的硬件和操作系统,我们看到更多的托管框架与.NET技术保持同步.Microsoft的.NET Standard和.NET Core定义了一个跨平台规范,为应用程序 ...

  10. powershell V6.0登基之:《瘸腿脚本大帝进攻linux!》

    ------[前言]------ 每个ps大版本发布,我都会写个消息. 这次的,主标题就叫:powershell v6.0登基副标题就叫:<瘸腿脚本大帝进攻linux!> ------[p ...

随机推荐

  1. 使用vite的创建vue项目

    首先也是打开项目文件目录 在标签处快速打上cmd即可打开cmd窗口 然后按照顶部图进行操作即可完成 安装完成的样子如下图 紧接着输入 npm run dev 将Local 的IP复制到浏览器打开,出现 ...

  2. Go开源世界主流成熟ORM框架gorm实践分享

    @ 目录 概述 定义 核心功能 声明模型与约定 gorm.Model 字段级权限 时间惯例 嵌入结构 字段标签 使用 安装 数据库链接 连接池 CRUD 接口 创建 查询 高级查询 修改 删除 原始S ...

  3. [NISACTF 2022]bingdundun~

    [NISACTF 2022]bingdundun~ 考点 文件上传.Phar://伪协议 一.题目 打开题目,发现是一道文件上传的题目,因为提示了可以压缩包,所以尝试直接上传zip文件,然后利用PHP ...

  4. 为什么 GPU 能够极大地提高仿真速度?

    这里的提速主要是针对时域电磁算法的.因为时域算法的蛙跳推进模式仅对大量存放在固定 位置的数据进行完全相同的且是简单的操作(移位相加),这正是 GPU 这类众核 SIMD 架构所进行的运算,即 ALU ...

  5. 【操作日志】如何在一个SpringBoot+Mybatis的项目中设计一个自定义ChangeLog记录?

    设计一个业务改动信息时的自定义记录,例如新增.修改.删除数据等.并且记录的规则可以通过配置的方式控制.大家需要根据各自业务场景参考,欢迎讨论.伪代码如下: 实体类: @TableName(" ...

  6. rest --framework 源码学习第一天 view 类

    首先view类:源码分析

  7. MySQL全面瓦解30:备份与恢复

    合辑地址:MySQL全面瓦解 1 为什么需要数据库备份 灾难恢复:当发生数据灾难的时候,需要对损坏的数据进行恢复和还原 需求的变更或者回滚:当需求发生变更,或者需要回滚到之前的版本时,数据库备份也显得 ...

  8. OCR -- 文本检测 - 训练DB文字检测模型

    百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 预测部署简介与总览 百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 Paddle Infer ...

  9. AnyCAD应用——修改指定点,线,面的坐标实现物体移动

    课题需求: 三维模型位置随实物位置改变而动态改变的功能,通过顶点位置坐标的改变,修改模型在显示中的位置. 功能验证:目前,可通过选中顶点手动输入坐标的方式,模拟验证此功能. 首先,点击"文件 ...

  10. 开发中MongoDB遇到的各种问题

    目录 一.安装6版本以下 二.安装6版本及以上 三.安装6版本以下(解压版) 四.配置本地 Windows MongoGB 服务 五.navicat 连接远程mongodb数据库 六.ip不一致问题 ...