Aspose.Cells for .NET 17.3.0 发行说明
钥匙 | 概括 | 类别 |
---|---|---|
CELLSNET-45037 | 支持数据透视表的自定义总计和总计标签 | 新功能 |
CELLSNET-45156 | 同步两个网格的分页(Aspose.Cells.GridWeb) | 新功能 |
CELLSNET-45140 | 仅验证更新的单元格并忽略其他单元格的验证(Aspose.Cells.GridWeb) | 新功能 |
CELLSNET-45158 | 数据透视表数据源的变化增加了额外的 LinkSource | 强化 |
CELLSNET-45168 | 形状稍微倾斜/倾斜,其文本“1”位置已更改 | 漏洞 |
CELLSNET-45163 | 将工作表渲染为图像时,形状中的文本会反转 | 漏洞 |
CELLSNET-45161 | 电子表格中图片的角度略有不同 | 漏洞 |
CELLSNET-45159 | 自动形状对象呈现不正确 | 漏洞 |
CELLSNET-45138 | PrintArea 无法正确转换图像 | 漏洞 |
CELLSNET-45136 | Excel 转换为 PDF 时框会旋转 | 漏洞 |
CELLSNET-45182 | 生成的电子表格无法在不修复的情况下加载到 Excel 中 | 漏洞 |
CELLSNET-45143 | Aspose.Cells 在保存到 XLSB 时生成带有报告筛选器的损坏数据透视表 | 漏洞 |
CELLSNET-45135 | 将 HTML 导入为 XLSX 时图像重叠 | 漏洞 |
CELLSNET-45134 | 将 HTML 导入为 XLSX 时列宽丢失 | 漏洞 |
CELLSNET-45133 | 将 HTML 导入为 XLSX 时内容样式丢失 | 漏洞 |
CELLSNET-45132 | 以 XLSX 格式保存时,HTML 中启用的 WrapText 丢失 | 漏洞 |
CELLSNET-45127 | 将 HTML 导入为 XLSX 后,字体样式和大小发生了变化 | 漏洞 |
CELLSNET-45115 | 添加一些数据后刷新数据透视表会生成损坏的 Excel 文件 | 漏洞 |
CELLSNET-45109 | 刷新按日期列分组的数据透视表时出错 | 漏洞 |
CELLSNET-45081 | 数据透视表的合并标签功能不起作用 | 漏洞 |
CELLSNET-45076 | 对齐不起作用,文本超出 Excel 中的单元格以转换为 HTML | 漏洞 |
CELLSNET-45057 | HTML 到 XLSX 的转换不正确 | 漏洞 |
CELLSNET-45040 | 一些数据透视字段项呈现为日期值而不是 Numbers | 漏洞 |
CELLSNET-40265 | 输入文件的文化问题 | 漏洞 |
CELLSNET-45142 | 使用外部范围时 VLOOKUP 函数出现问题 | 漏洞 |
CELLSNET-45150 | 无法展开或折叠工作表的最后一行 | 漏洞 |
CELLSNET-45139 | 分页不适用于一页上的两个 GridWeb | 漏洞 |
CELLSNET-45137 | 在 Internet Explorer 11 上运行时,分组的行或列在 GridWeb 中有问题 | 漏洞 |
CELLSNET-45203 | 将 Excel 文件呈现为 PDF 时字符重叠 | 漏洞 |
CELLSNET-45196 | 输出打印输出乱码 XPS | 漏洞 |
CELLSNET-45187 | 标签应按照 TrueType 规范按升序排列 | 漏洞 |
CELLSNET-45169 | 警告:区域的最大大小为 262144 字节,位于 SheetRender.ToImage on Mono | 漏洞 |
CELLSNET-45167 | SheetRender.ToImage 渲染内容乱码不完整 Mono | 漏洞 |
CELLSNET-45166 | SheetRender.ToImage 只渲染页眉和页脚 Mono | 漏洞 |
CELLSNET-43732 | 渲染到 EMF 并粘贴到 Word 中导致文本在结果 PDF 中重叠 | 漏洞 |
CELLSNET-45186 | 面积图未显示在 PDF 出口 | 漏洞 |
CELLSNET-45178 | 在将图表渲染为图像时修剪轴标签 | 漏洞 |
CELLSNET-45177 | 将图表渲染为图像时轴标签丢失 - II | 漏洞 |
CELLSNET-45151 | 图表在将电子表格呈现为 PDF 时丢失所有格式 | 漏洞 |
CELLSNET-45147 | 将电子表格呈现为 PDF 时缺少图表 | 漏洞 |
CELLSNET-44998 | 将电子表格转换为 PDF 后图表的数据标签发生变化 | 漏洞 |
CELLSNET-44984 | 第二张图中的趋势线在输出中未正确呈现 PDF | 漏洞 |
CELLSNET-41539 | 绿色椭圆艺术字/图片在 PDF 中的图表周围错误呈现 | 漏洞 |
CELLSNET-45197 | Range.MoveTo 不移动数据验证和条件格式 | 漏洞 |
CELLSNET-45183 | ActiveX 控件 (ComboBox) 的“锁定”属性未更改 | 漏洞 |
CELLSNET-45179 | 在 XLSX 文件上设置代号无法正常工作 | 虫子 |
CELLSNET-45175 | 图片格式不适用于 XLSX 文件 | 漏洞 |
CELLSNET-45174 | DeleteRange 后 Print_Area 范围中断 | 漏洞 |
CELLSNET-45173 | XLSX 保存后文件损坏 | 漏洞 |
CELLSNET-45171 | 移动范围会导致内部范围缩小为一个单元格长 | 漏洞 |
CELLSNET-45162 | 删除范围后图表未正确计算/刷新 | 漏洞 |
CELLSNET-45155 | Cells.InsertColumns/DeleteColumns 导致 ListObject/Table 出现“#REF” | 漏洞 |
CELLSNET-45154 | 移动范围不会更新另一张纸上的引用 | 漏洞 |
CELLSNET-45145 | 无法删除 CameraTool 对象 | 漏洞 |
CELLSNET-45060 | 简单的加载和保存操作后按钮的字体设置发生了变化 | 漏洞 |
CELLSNET-43722 | 文件错误:数据可能已丢失,打开时被Excel抛出XLS | 漏洞 |
CELLSNET-45190 | 计算 WORKDAY 公式时出现异常 | 例外 |
CELLSNET-45199 | Excel 到 PDF - 索引超出数组异常 | 例外 |
公共 API 和向后不兼容的更改
以下是对公众 API 所做的任何更改的列表,例如添加、重命名、删除或弃用成员,以及对 Aspose.Cells for .NET 所做的任何非向后兼容更改。如果您对列出的任何更改有疑虑,请在Aspose.Cells 支持论坛。
自定义数据透视表的全球化设置
使用最近的 17.3.0 或更高版本,开发人员可以在 Excel 文件中自定义数据透视表的全球化设置。他们可能会根据要求更改数据透视表总计、小计、总计、所有项目、多个项目、列标签、行标签、空白值文本。开发人员可以将此功能合并到他们的 .NET 应用程序中,而不管 Excel 文本语言是什么。它可能是阿拉伯语、印地语、波兰语等。下面列出了所有新支持的方法:
- 添加 GlobalizationSettings.GetPivotTotalName() 方法 它在数据透视表中获取“总计”标签的名称。当 PivotTable 的数据区域中包含两个或多个 PivotField 时,开发人员可以重写此方法。
- 添加 GlobalizationSettings.GetPivotGrandTotalName() 方法 它在数据透视表中获得“总计”标签的名称。
- 添加 GlobalizationSettings.GetMultipleItemsName() 方法 它获取数据透视表中“(多项)”标签的名称。
- 添加 GlobalizationSettings.GetAllName() 方法 它获取数据透视表中“(全部)”标签的名称。
- **添加 GlobalizationSettings.GetColumnLablesName()**方法 - 它获取数据透视表中“列标签”标签的名称。
- 添加 GlobalizationSettings.GetRowLablesName() 方法 它获取数据透视表中“Row Labels”标签的名称。
- 添加 GlobalizationSettings.GetEmptyDataName() 方法 它在数据透视表中获取“(空白)”标签的名称。
- 添加 GlobalizationSettings.GetSubTotalName(PivotFieldSubtotalType subTotalType) 方法 它在数据透视表中获取“PivotFieldSubtotalType”类型的名称。
此代码示例详细说明了如何自定义数据透视表的全球化设置。它创建了一个从基类 GlobalizationSettings 派生的 CustomPivotTableGlobalizationSettings 类,并覆盖了所有必要的方法。这些方法返回数据透视表合计、小计、总计、所有项目、多个项目、列标签、行标签、空白值的自定义文本。然后它将此类的对象分配给 Workbook.GlobalizationSettings 属性。该代码加载包含数据透视表的源 Excel 文件,刷新并计算其数据并将其保存为输出 PDF 文件。开发人员还可以将工作簿保存为任何支持的格式。
.NET, C#
//Load your excel file
Workbook wb = new Workbook("samplePivotTableGlobalizationSettings.xlsx");
//Setting Custom Pivot Table Globalization Settings
wb.Settings.GlobalizationSettings = new CustomPivotTableGlobalizationSettings();
//Hide first worksheet that contains the data of the pivot table
wb.Worksheets[0].IsVisible = false;
//Access second worksheet
Worksheet ws = wb.Worksheets[1];
//Access the pivot table, refresh and calculate its data
PivotTable pt = ws.PivotTables[0];
pt.RefreshDataFlag = true;
pt.RefreshData();
pt.CalculateData();
pt.RefreshDataFlag = false;
//Pdf save options - save entire worksheet on a single pdf page
PdfSaveOptions options = new PdfSaveOptions();
options.OnePagePerSheet = true;
//Save the output pdf
wb.Save("outputPivotTableGlobalizationSettings.pdf", options);
// it derives a new class, called CustomPivotTableGlobalizationSettings, from the GlobalizationSettings class, as follows:
private class CustomPivotTableGlobalizationSettings : GlobalizationSettings
{
//Gets the name of "Total" label in the PivotTable.
//You need to override this method when the PivotTable contains two or more PivotFields in the data area.
public override string GetPivotTotalName()
{
Debug.WriteLine("---------GetPivotTotalName-------------");
return "AsposeGetPivotTotalName";
}
//Gets the name of "Grand Total" label in the PivotTable.
public override string GetPivotGrandTotalName()
{
Debug.WriteLine("---------GetPivotGrandTotalName-------------");
return "AsposeGetPivotGrandTotalName";
}
//Gets the name of "(Multiple Items)" label in the PivotTable.
public override string GetMultipleItemsName()
{
Debug.WriteLine("---------GetMultipleItemsName-------------");
return "AsposeGetMultipleItemsName";
}
//Gets the name of "(All)" label in the PivotTable.
public override string GetAllName()
{
Debug.WriteLine("---------GetAllName-------------");
return "AsposeGetAllName";
}
//Gets the name of "Column Labels" label in the PivotTable.
public override string GetColumnLablesName()
{
Debug.WriteLine("---------GetColumnLablesName-------------");
return "AsposeGetColumnLablesName";
}
//Gets the name of "Row Labels" label in the PivotTable.
public override string GetRowLablesName()
{
Debug.WriteLine("---------GetRowLablesName-------------");
return "AsposeGetRowLablesName";
}
//Gets the name of "(blank)" label in the PivotTable.
public override string GetEmptyDataName()
{
Debug.WriteLine("---------GetEmptyDataName-------------");
return "(blank)AsposeGetEmptyDataName";
}
//Gets the name of PivotFieldSubtotalType type in the PivotTable.
public override string GetSubTotalName(PivotFieldSubtotalType subTotalType)
{
Debug.WriteLine("---------GetSubTotalName-------------");
switch (subTotalType)
{
case PivotFieldSubtotalType.Sum:
return "AsposeSum";//polish
case PivotFieldSubtotalType.Count:
return "AsposeCount";
case PivotFieldSubtotalType.Average:
return "AsposeAverage";
case PivotFieldSubtotalType.Max:
return "AsposeMax";
case PivotFieldSubtotalType.Min:
return "AsposeMin";
case PivotFieldSubtotalType.Product:
return "AsposeProduct";
case PivotFieldSubtotalType.CountNums:
return "AsposeCount";
case PivotFieldSubtotalType.Stdev:
return "AsposeStdDev";
case PivotFieldSubtotalType.Stdevp:
return "AsposeStdDevp";
case PivotFieldSubtotalType.Var:
return "AsposeVar";
case PivotFieldSubtotalType.Varp:
return "AsposeVarp";
}
return "AsposeSubTotalName";
}
}//End CustomPivotTableGlobalizationSettings
在 GridWeb 控件的页面更改事件上执行客户端脚本
使用 GridWeb 控件的 OnPageChangeClientFunction 属性,开发人员可以在页面更改事件上执行客户端脚本,因为 GridWeb 控件可以在多个页面中保存数据。他们可能需要在他们的网络应用程序中显示当前页面索引。
- 在 GridWeb 控件中添加 OnPageChangeClientFunction 属性 它获取或设置页面索引更改时要调用的客户端脚本函数。它仅在 EnablePaging 为真时生效。
此代码示例显示了 OnPageChangeClientFunction 属性的使用。它使用名为 MyOnPageChange 的客户端函数设置属性。现在,每当用户更改 GridWeb 页面时,它都会调用客户端函数 MyOnPageChange 打印当前页面索引在安慰:
.NET, C#
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="TestGridWeb.aspx.cs" Inherits="TestGridWeb" %>
<%@ Register TagPrefix="acw" Namespace="Aspose.Cells.GridWeb" Assembly="Aspose.Cells.GridWeb" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Test GridWeb</title>
<script type="text/javascript">
function MyOnPageChange(index) {
console.log("current page is:" + index);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<div>
<b>GridWeb Version:  </b>
<asp:Label ID="lblVersion" runat="server" Text="Label"></asp:Label>
<br />
</div>
<acw:GridWeb ID="GridWeb1"
runat="server" XhtmlMode="True"
Height="504px" Width="1119px" EnablePaging="true"
OnPageChangeClientFunction ="MyOnPageChange">
</acw:GridWeb>
</div>
</form>
</body>
</html>
//........................................................
// It is the client side function MyOnPageChange that will be executed because of setting OnPageChangeClientFunction ="MyOnPageChange"property in GridWeb.
function MyOnPageChange(index) {
console.log("current page is:" + index);
}
验证整个 Excel 工作表
默认情况下,GridWeb 仅验证更新的单元格,而不验证整个 Excel 工作表。但是,如果开发人员需要在 GridWeb 向服务器发送请求之前在客户端验证整个 Excel 工作表,那么您应该将 acwmain.js 中的 needValidateall 变量设置为 true。
使用示例
请查看 Aspose.Cells Wiki 文档中添加的帮助主题列表: