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

news2024/7/4 5:47:59

近日,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的全新功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/948098.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

云计算环境中高性能计算的挑战与对策

文章目录 云计算中的高性能计算挑战1. 资源竞争:2. 网络延迟:3. 数据传输效率:4. 虚拟化开销:5. 节点异构性: 高性能计算在云计算环境中的对策1. 定制化虚拟机镜像:2. 弹性资源调整:3. 高效数据…

【Sql】把数据库字段用函数根据逗号分裂成列表,然后判断列表中是否包含目标值

【Sql】把数据库字段用函数根据逗号分裂成列表,然后判断列表中是否包含目标值 【1】问题描述【2】Oracle内置函数解决【3】mysql的内置函数INSTR()【4】mysql的内置函数FIND_IN_SET() 【1】问题描述 数据库中【库信息db】和【集群信息cluster】是一对多的关系&…

学弟学妹们!要开学了,这些好物一定要提前备

开学的脚步近了,近了,神兽归笼,万物更新,大家迎接开学季的阵仗堪比迎接春天了。灵魂发问:开学装备备齐了吗?神兽们的情绪调整好了吗?自己要不要再回回炉,充充电?这次整理…

javacv 基础04-读取mp4,avi等视频文件并截图保存图片到本地

javacv 读取mp4,avi等视频文件并截图保存图片到本地 代码如下: package com.example.javacvstudy;import org.bytedeco.javacv.FFmpegFrameGrabber; import org.bytedeco.javacv.Frame; import org.bytedeco.javacv.Java2DFrameConverter;import javax.imageio.Im…

《算法竞赛·快冲300题》每日一题:“浇水”

《算法竞赛快冲300题》将于2024年出版,是《算法竞赛》的辅助练习册。 所有题目放在自建的OJ New Online Judge。 用C/C、Java、Python三种语言给出代码,以中低档题为主,适合入门、进阶。 文章目录 题目描述题解C代码Java代码Python代码 “ 浇…

得帆信息东区总经理周俊君:该采用低代码和无代码给繁重的SAP减减负了

数字化转型对任何有竞争力的业务都至关重要,组织踏上数字化转型之旅,意味着要么重新开始,要么在现有IT建设的基础上再接再厉。这段旅程不仅仅是采用新技术,而是寻求在高可用性的同时为客户提供差异化价值。为了帮助客户达成这些目…

报表技术POI和EasyPOI处理百万数据、CSV、Word

1、了解百万数据的导入 1.1 需求分析 使用POI基于事件模式解析案例提供的Excel文件 1.2 思路分析 用户模式: 加载并读取Excel时,是通过一次性的将所有数据加载到内存中再去解析每个单元格内容。当Excel数据量较大时,由于不同的运行环境可…

欧盟GMP附录-对气流流型的11条要求及解读

欧盟GMP附录《无菌药品生产》已经生效,本文总结了该附录对气流流型的11条要求,并进行延伸解读。 【气流流型检测仪】 具体11条如下,来自EU GMP 无菌附录。 1.洁净室和区域内的气流模式应可视化,以证明气流不会从低洁净级别区域进…

【数据结构】带头双向循环链表及其实现

目录 1.带头双向循环链表 2.带头双向循环链表实现 2.1初始化 2.2销毁 2.3头插 2.4链表打印 2.5头删数据 2.6尾插数据 2.7尾删数据 2.8链表判空 2.9查找一个数据 2.10在pos位置前插入数据 2.11删除pos位置 2.12求链表的长度 2.顺序表和链表的比较 1.带头双向循环…

字节前端实习的两道算法题,看看强度如何

最长严格递增子序列 题目描述 给你一个整数数组nums,找到其中最长严格递增子序列的长度。 子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7…

使用DataX对MySQL 8.1进行数据迁移

1. 环境准备 1.1 下载DataX 这里采用直接下载的方式:https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202308/datax.tar.gz,不过这个包是真的有点大。 1.2 安装Python Python下载地址:https://www.python.org/downloads/ 安装的时…

【深度思考】如何优雅的实现脱敏?

最近做了个脱敏的需求,要对系统中的敏感信息,如手机号、车牌号、身份证号、银行卡号等进行脱敏显示。 效果类似下面这样: 简单来说,就是对敏感信息中的某几位进行掩码显示,常见的一般是使用*。 本篇文章就来讲解下在…

解析肖特基二极管NRVBS360BNT3G整流器的优缺点及应用

何为肖特基二极管整流器? 是一种常用的电子器件,用于将交流信号转换为直流信号。它由一个PN结和一个金属接触组成,具有较低的正向压降和快速的开关特性。 在正向偏置下,肖特基二极管具有较低的正向压降,通常为0.3-0.…

如何防范恶意邮件?只要做到这几点

目前,网络钓鱼仍然是企业面临的最大威胁之一,而恶意电子邮件只是网络攻击的起点。一旦进入,威胁行动者就可以展开下一阶段的攻击,例如勒索软件或数据窃取。而这将给被攻击的企业造成巨大的声誉和经济损失,甚至涉及法律…

node升级带来的问题及解决方案(digital envelope routines::unsupported)

由于项目需要将 node版本从16升级到了18,但是原有的老项目还是使用的16的环境,导致在运行老版本的时候出现错误 错误信息如下 Error: error:0308010C:digital envelope routines::unsupportedat new Hash (node:internal/crypto/hash:71:19)at Object.…

文件恢复工具推荐,这4款高效恢复数据!

“有什么好用的文件恢复工具推荐吗?我经常莫名其妙丢失文件!而且还是一些很重要的文文件,我都不知道该怎么办了!请大家帮帮我,感谢大家!” 文件恢复对各位电脑用户来说可能都并不陌生。在使用电脑时&#x…

win | wireshark | 在win上跑lua脚本 解析数据包

前提说明:之前是在linux 系统上配置的,然后现在 在配置lua 脚本 ,然后 分析指定协议 的 数据包 其实流程也比较简单,但 逻辑需要缕清来 首先要把你 预先准备的 xxx.lua 文件放到wireshark 的安装文件中,(我…

easyexcel poi根据模板导出Excel

1.导入依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.0.1</version> </dependency>2.代码实现 package com.jiayou.peis.manage.biz.cotroller;import com.alibaba.excel.…

vue2中使用全屏screenfull插件遇到的问题

1、安装screenfull6.0.2后&#xff0c;启动项目。报错 解决方案&#xff1a; 第一种&#xff1a;卸载6.0的版本&#xff0c;安装 screenfull5.1.0 第二种&#xff1a; vue.config.js文件中配置属性 第三种&#xff1a; 安装插件babel/plugin-proposal-nullish-coalescing-o…