zl程序教程

您现在的位置是:首页 >  工具

当前栏目

Crack:GrapeCity Documents for Excel 6.0.1

Excel for Crack 6.0
2023-09-14 09:04:11 时间

v6 中 GrapeCity Documents for Excel 的新增功能

ocuments for Excel (GcExcel) v6 版本现已上线!该版本引入了新的基于 JavaScript 的数据查看器控件、功能和对 GcExcel .NETJava API 的模板增强,以及更多与SpreadJS兼容的功能。看看下面的主要亮点。

 

引入 GrapeCity 文档数据查看器新

GrapeCity Documents引入了新的GrapeCity 文档数据查看器 (GcDataViewer)控件——一个基于 JavaScript 的客户端查看器,可以加载和预览与数据相关的文档,如XLSX、CSV 和SpreadJS .json 文件。它是一个只读的跨平台解决方案,用于查看具有许多 Excel 和 CSV 选项的数据文件。GcDataViewer 允许可以无缝集成到现有系统或新应用程序中的数据查看功能。查看器可以在任何数据驱动的业务或公司中找到它的用途,例如销售、电子商务、股票市场、医疗保健、咨询等,它们正在寻找以下解决方案:

  • 在现有系统中集成客户端查看器以查看数据文件
  • 为其客户/用户(例如,SaaS 公司)构建基于 Web 的数据查看器

开发人员可以使用它来寻找打开由其应用程序的服务器端生成的数据文件并查看数据的选项。

GcDataViewer可以轻松与 .NET 7、Java 或 JS 框架(如 NodeJS、AngularJS、React、Preact、Express 等)集成。除此之外,还可以在 Windows、Mac、Linux、iOS 和 Android 设备上查看数据文件,它适用于所有现代浏览器,包括 Edge、Chrome、Firefox、Opera 和 Safari。

主要亮点

  • 统一解决方案——它是一个统一的基于 Javascript 的客户端查看器,可以加载和预览任何与数据相关的文档。目前,它支持 Excel(.xlsx 和 .xlsm)、CSV 和 SSJSON。用户无需寻找不同/单独的工具来查看这些数据文件。GcDataViewer 允许在一个应用程序中查看它们,无需切换到多个工具来查看它们的内容
  • GcExcel 的 UI - 使用 GcExcel .NETJava的客户可以有一个图形界面来查看由其服务器端 API 生成的数据文件
  • 跨平台 解决方案——作为 JS 产品,GcDataViewer 可以轻松与 .NET 7、Java 或 NodeJS、AngularJS、React、Preact、Express 等 JS 框架集成。除此之外,还可以在 Windows、Mac、Linux、iOS 和 Android 设备上查看数据文件,并且适用于所有现代浏览器,包括 Edge、Chrome、Firefox、Opera 和 Safari
  • 响应式 UI - GcDataViewer 的用户界面响应不同设备、屏幕方向和尺寸的查看
  • 轻量级数据查看器- 更少的服务器端依赖,简单的语法和语义使其成为轻量级应用程序的合适选择
  • 对 Excel 功能的广泛支持——GcDataViewer 支持大多数 Excel 功能的只读视图,例如表格、数据透视表、公式、条件格式、数据栏、图标、大纲组、过滤器等
  • CSV 选项:使用各种可用设置配置 CSV 文档的加载
  • Themes -支持内置主题,满足不同的UI外观需求
  • API 集成- 支持可用于在现有应用程序中集成和嵌入查看器的公共 API
  • 本地化以匹配您的市场- GcDataViewer 可以根据浏览器语言调整其显示。目前支持的语言有 - 英语、中文和韩语

GcDataViewer 可用于 GcExcel .NETJava包,或者您可以从 npm 安装它。

npm install @grapecity/gcdataviewer

Excel 工作簿大小优化

您的 Excel 文件可能经常包含未使用的格式、定义的名称或空区域单元格。这些单元格最初可能具有数据和格式,但随着时间的推移不再使用,数据被删除但格式保留。工作簿中存在大量此类单元格会导致性能下降并增加工作簿的大小。使用 GcExcel,您现在可以排除此类单元格并在保存工作簿的同时减小工作簿的大小。GcExcel 在XLSXSaveOptions()类中提供了新选项,以使用 Workbook.Save(..) 方法优化您的工作簿。引入了三个新选项 -

  • XlsxSaveOptions.ExcludeUnusedStyles{ 得到; 放; } - 指示是否排除用户定义但从未使用过的单元格样式。默认值为 false
  • XlsxSaveOptions.ExcludeUnusedNames{ get; 放; } - 指示是否排除用户定义但从未使用过的定义名称。默认值为 false
  • XlsxSaveOptions.ExcludeEmptyRegionCells{ 得到; 放; } - 指示是否排除所用数据范围之外的任何空单元格(没有数据或只有样式的单元格)

下面的代码排除了工作簿中任何未使用的样式、名称或空区域单元格,从而减小了工作簿的大小。

//create a new workbook
var workbook = new GrapeCity.Documents.Excel.Workbook();
Stream fileStream = this.GetResourceStream("xlsx\\File needs to be optimized.xlsx");
workbook.Open(fileStream);

XlsxSaveOptions options = new XlsxSaveOptions
{
    ExcludeEmptyRegionCells = true,
    ExcludeUnusedStyles = true,
    ExcludeUnusedNames = true
};

using (MemoryStream outputStream = new MemoryStream())
{
    workbook.Save(outputStream, options);
    outputStream.Position = 0;
    workbook.Open(outputStream, OpenFileFormat.Xlsx);
}
        
// Save to an excel file
workbook.Save("OptionsToOptimizeFileSize.xlsx");
复制

GcExcel 模板增强功能

分页电子表格报告新的增强功能

在上一个版本中,GcExcel 模板引入了“ TemplateOptions.PaginationMode”CountPerPage 属性 (CP) 来管理工作簿分页到单独的工作表中,工作表布局中的行数固定。

在 v6 中,引入了一个新的 API 来完成额外的布局。借助分页模板功能,您可以使用新 API 创建以下类型的布局:

在分页电子表格中为页面或组配置页眉/页脚

添加了新的 API RepeatType NoRepeatAction 和 RepeatWithGroup以重复组内的单元格值或为每个页面配置页面/组页眉/页脚。

  • RepeatType 属性确定在设置 RepeatWithGroup 属性时如何在组内重复单元格值
  • NoRepeatAction 属性决定了普通内容不显示在当前页面时如何设置删除方式
  • RepeatWithGroup 属性指定模板中与生成的报告中的组重复的单元格引用

在以下快照中,RepeatType 设置为患者和标本信息的 FirstPage,RepeatWithGroup 设置为 D3,这意味着页眉范围 A6:I18 为 D3 中设置的每个新患者 ID 重复。

 

组的页码和页数

在固定行布局中,引入了新属性 - PageNumber用于设置当前页的页码,PageCount用于设置当前组的页数。这将有助于指示组的当前页码和组中的总页数。这两个属性可以使用语法定义 - PageNumber(string cell) 和 PageCount(string cell)。在下面的布局中,患者 ID P001 的信息被分页为四页,并且可以显示当前页码。

根据页面大小对电子表格进行分页

到目前为止,您一直在根据CountPerPage (CP) 属性对工作表进行分页,该属性在工作表布局中生成固定数量的行并分页到多个工作表中。但是,可以根据页面大小对报表进行分页,页面大小由 Excel 中的页面设置设置决定。在这种情况下,如果 CP 属性未设置或设置为 *,则TemplateOptions.PaginationMode为 true。该报告将根据页面大小分页到多个工作表中。

在这种类型的分页中,添加了新属性RepeatOutput、KeepTogether 和 AttachTo,它们有助于在每页的最大行数之后插入分页符,而不管组和每个组的小计。在这种情况下,最大行数取决于纸张大小。

  • RepeatOutput属性指定合并单元格的值是仅出现在报表的第一页还是每一页
  • KeepTogether属性确保单元格及其后代出现在同一页上。该属性允许您选择是否要将单元格与水平分页或垂直分页保持在一起
  • AttachTo属性允许将单元格模板与另一个单元格绑定,以确保它不会单独出现在页面上。您可以使用此属性来防止文档中出现孤立的页眉/页脚

下面的示例显示了一个根据页面大小分页的报告。根据 Excel 的页面设置设置,当行达到工作表中的最大行数时,无论模板组设置如何,报告都会分页到下一个工作表。在这里,'RepeatOutput' 设置在合并的单元格上,我们可以选择在每个工作表上重复或不重复。

保留原始模板或流程特定的模板工作表

到现在为止,您可以将整个工作簿模板处理成一个报告。但是,GcExcel 现在引入了Workbook.GenerateTemplate()方法,该方法返回一个新的工作簿实例而不改变原始模板工作簿。

此外,您的工作簿可能有多个模板,您可能只需要处理一个特定的模板工作表。GcExcel 添加了一个条款来处理来自许多模板的特定模板工作表。您可以将这个特定的模板工作表传递给新的Workbook.GenerateTemplate()方法。请参阅下面的代码:

IWorkbook workbook = workbook.GenerateReport(new IWorksheet[] { sheet });
复制

该方法返回一个新的工作簿实例,仅处理作为参数传递的模板而不更改原始模板。如果未提供参数,GenerateTemplate() 方法将处理所有工作表。

在以下示例中,仅处理了三个工作表中的特定工作表“PurchaseOrder”。

// Add data source
workbook.AddDataSource("dt", salesData);
		
// Init template global settings
workbook.Names.Add("TemplateOptions.KeepLineSize", "true");
		
// Process the template and return the specified report
IWorkbook report = workbook.GenerateReport(workbook.Worksheets["PurchaseOrder"]);
		
// Save the report as xlsx to a stream
report.Save(outputStream);

 

获取所选区域的使用范围

GcExcel 在工作表中提供了UsedRange属性和GetUsedRange方法来获取工作表中所有已使用的范围。您可能还希望获取选定范围内的已用范围,而不是已用范围的整个工作表。GcExcel 将UsedRange属性和GetUsedRange方法添加到 IRange 接口。

以下代码在选定范围内查找使用范围并更改使用范围的单元格背景颜色。

// Init data.
IRange range = sheet.Range["B2:D4"];
range.Value = "Unused";

// Select range.
IRange selectedRange = sheet.Range["C3:E5"];
selectedRange.Select();

// Get the used range from selectedRange.
IRange usedRange = selectedRange.UsedRange;
usedRange.Value = "Used";
usedRange.Interior.Color = Color.LightBlue;
复制

添加具有范围参考或定义名称的形状文本

假设您有大量员工销售数据,并希望使用任何图形图像突出显示当月的总销售额。您可以将形状与数据绑定公式链接起来,这可以动态地表示所选形状中当月的销售额。在某些情况下,工作表中的形状可以包含引用范围或定义名称的文本。此文本可以根据范围内的数据或定义的名称进行更改。GcExcel 添加IShape.Formula属性来设置或删除当前形状的范围引用或定义的名称。您可以设置 IShape.Formula=”=A1”(到单元格/区域)或 IShape.Formula = “=refname”(到定义的名称)。

下面的代码将公式设置为一个形状,该形状使用一个公式引用单元格 G8:

// set shape formula to G8
IShape shapeResult = worksheet.Shapes.AddShape(AutoShapeType.Rectangle, worksheet.Range["B7:D8"]);
shapeResult.Formula = "=G8";

 

使用直接方法将形状/图片添加到单元格/单元格区域

为了简化将 IShape 添加到范围的过程,提供了一系列直接方法来将 IShape 添加到范围而无需获取其坐标。GcExcel 向 IShape 接口添加了五个新方法 -

  • AddPicture() - 根据当前工作表指定范围内的现有文件创建图片
  • AddShape() - 返回表示当前工作表指定范围内的新自选图形的对象
  • AddChart() - 在当前工作表的指定范围内创建图表
  • AddConnector() - 在当前工作表的指定范围内创建一个连接器
  • AddCameraPicture() - 在当前工作表上创建从参考范围到目标范围的图片

以下代码将图片与连接器一起直接添加到范围:

var workbook = new GrapeCity.Documents.Excel.Workbook();

IWorksheet worksheet = workbook.Worksheets[0];

// Place the same picture to two range
System.IO.Stream stream = this.GetResourceStream("puffins.jpg");
IShape smallPicture = worksheet.Shapes.AddPicture(stream, ImageType.JPG, worksheet.Range["B2:B4"]);
IShape bigPicture = worksheet.Shapes.AddPicture(stream, ImageType.JPG, worksheet.Range["D4:F12"]);

worksheet.Shapes.AddConnector(ConnectorType.Straight, worksheet.Range["C2:F3"]);
worksheet.Shapes.AddConnector(ConnectorType.Straight, worksheet.Range["B5:C12"]);
        
// Save to an excel file
workbook.Save("AddPictureToRange.xlsx");

 

支持新的 Lambda 函数,包括帮助函数

如果您的工作表包含复杂的计算,您必须详细了解它们。这可能容易出错并且难以维护。为什么不只添加一次复杂的计算,给它一个简单的名字,然后在你的工作表中重复使用它呢?GcExcel 支持以编程方式添加LAMBDA函数。它有助于将流程抽象为函数并创建自定义、可重用的函数,并使用熟悉的名称调用它们。语法很简单。只需将函数添加到 Workbook 的 Names 集合中即可。

=LAMBDA([参数 1, 参数 2, …,] 计算)

上面的语法添加了一个 LAMBDA 函数,其中包含要传递给该函数的参数,例如单元格引用、字符串或数字。您最多可以输入 253 个参数。此参数是可选的。另一个参数是作为函数结果执行和返回的公式。

下面的代码在 workbook.Names 集合中将 LAMBDA 函数命名为“CountWords”。LAMBDA 函数执行长时间计算以计算文本中的单词数。该函数被赋予了一个简单的名称,'CountWords',它可以在工作表中多次重复使用,而不是重复冗长的计算函数。

workbook.Names.Add("CountWords", "=LAMBDA(text,IF(LEN(TRIM(text))=0,0,LEN(TRIM(text))-LEN(SUBSTITUTE(TRIM(text),\" \",\"\"))+1))");
复制

GcExcel 中的 LAMBDA 函数支持包括对七个新的 Helper 函数的支持,这些函数有助于 LAMBDA 函数处理数组:

  • 拜罗
  • 比科
  • 扫描
  • 减少
  • 地图
  • 制作数组
  • 异化

新的文本和数组操作 Excel 函数

GcExcel 现在支持以下函数集:

文本操作函数

以前,为了提取文本的一部分,您必须使用多个函数。例如,要从文本中提取名字,比如单元格中的“Mark Taylor”,您必须使用FINDSEARCH函数来查找列表中第一个空格的位置,然后使用 LEFT、MID 或 RIGHT 结合LEN 来提取数据。但是,新的文本操作函数有助于提取或组合各种文本片段,并使用单个函数将结果溢出到其他单元格。支持以下新的文本操作功能。

  • TEXTSPLIT、TEXTBEFORE 和 TEXTAFTER

以下代码使用 TEXTBEFORE 函数查找句子中单词之前的文本:

sheetOfTEXTBEFORE.Range["A3"].Value = "Little red Riding Hood's red hood";

sheetOfTEXTBEFORE.Range["A4"].Value = "Formulas";
sheetOfTEXTBEFORE.Range["A4"].Font.Bold = true;
sheetOfTEXTBEFORE.Range["B4"].Value = "Results";
sheetOfTEXTBEFORE.Range["B4"].Font.Bold = true;
sheetOfTEXTBEFORE.Range["B5"].Formula2 = "=TEXTBEFORE(A2,\"Red\")";
sheetOfTEXTBEFORE.Range["A5"].Formula = "=FORMULATEXT(B5)";
sheetOfTEXTBEFORE.Range["B6"].Formula2 = "=TEXTBEFORE(A3,\"red\",2)";
sheetOfTEXTBEFORE.Range["A6"].Formula = "=FORMULATEXT(B6)";
sheetOfTEXTBEFORE.Range["B7"].Formula2 = "=TEXTBEFORE(A3,\"red\",-2)";
sheetOfTEXTBEFORE.Range["A7"].Formula = "=FORMULATEXT(B7)";
sheetOfTEXTBEFORE.Range["B8"].Formula2 = "=TEXTBEFORE(A3,\"Red\")";
sheetOfTEXTBEFORE.Range["A8"].Formula = "=FORMULATEXT(B8)";
sheetOfTEXTBEFORE.Range["B9"].Formula2 = "=TEXTBEFORE(A3,\"Red\",,1)";
sheetOfTEXTBEFORE.Range["A9"].Formula = "=FORMULATEXT(B9)";
sheetOfTEXTBEFORE.Range["B10"].Formula2 = "=TEXTBEFORE(A3,\"Riding\")";
sheetOfTEXTBEFORE.Range["A10"].Formula = "=FORMULATEXT(B10)";
复制

 

数组操作函数

数组操作函数将有助于合并和调整范围并溢出公式的范围。如果您的工作表有动态数组公式,这些新函数将使您的电子表格更具吸引力,并支持动态数组的高级和优化操作。添加了以下新功能:

  • HSTACK、VSTACK、TOROW、TOCOL、WRAPROWS、WRAPCOLS、TAKE、DROP、CHOOSEROWS、CHOOSECOLS 和 EXPAND

以下代码将数组的数据转换为一行:

sheetOfTOROW.Range["A7"].Value = "Result";
sheetOfTOROW.Range["A7"].Font.Bold = true;
sheetOfTOROW.Range["A8"].Formula2 = "=TOROW(A2:D4)";

 

范围交集、并集和偏移

GcExcel 一直支持 API 来查找两个范围的交集/联合/偏移量。在 v6 中,我们通过引入直接方法简化了这个操作:

  • IRange.Intersect(IRange range2) 或 IRange.Intersect(params IRange[] ranges)获取当前范围与一个或多个范围参数的交集
  • IRange.Union(IRange range2) 或 IRange.Union(params IRange[] ranges)获取当前范围和一个或多个范围参数的并集
  • IRange.Offset(int rowOffset, int columnOffset)获取当前范围的偏移量

下面的代码执行两个范围的交集和并集,分别为相交范围和并集范围设置内部颜色:

// Set the intersection of two range value and style.
var intersectRange = worksheet.Range["A2:E6"].Intersect(worksheet.Range["C4:G8"]);
intersectRange.Interior.Color = Color.FromArgb(56, 93, 171);

var firstUnionRange = worksheet.Range["A11:D13"];
firstUnionRange.Merge();
firstUnionRange.Interior.Color = Color.FromArgb(56, 93, 171);
firstUnionRange.HorizontalAlignment = HorizontalAlignment.Center;
firstUnionRange.VerticalAlignment = VerticalAlignment.Center;

var secondUnionRange = worksheet.Range["D14:G16"];
secondUnionRange.Merge();
secondUnionRange.Interior.Color = Color.FromArgb(145, 167, 214);
secondUnionRange.HorizontalAlignment = HorizontalAlignment.Center;
secondUnionRange.VerticalAlignment = VerticalAlignment.Center;
// Set the union of two range value and font style.
var unionRange = worksheet.Range["A11:D13"].Union(worksheet.Range["D14:G16"]);

控制自动调整的选项

GcExcel 已经支持在打开 Excel 文件时自动调整行/列。但是,在 v6 中,API 添加了一个新选项来控制此行为。GcExcel 现在支持XlsxOpenOptions.DoNotAutoFitAfterOpened属性来获取/设置是否在打开文件后自动调整行高。默认值为假。