Spire.Office 9.9.0 已正式发布。该版本新增了一些功能, Spire.XLS 支持识别 Msg 格式的 OLE 对象和对 DTD 进行禁用处理; Spire.Presentation 支持在执行转换功能时设置全局的字体目录,还增加了两个属性用于获取图表数据源的最后一行和最后一列。除此之外,一些在操作 Excel、PDF 和 PPT 文档时出现的问题也得以成功解决。更多新功能及问题修复详情如下。
该版本涵盖了最新版的 Spire.Doc、Spire.PDF、Spire.XLS、Spire.Presentation、Spire.DataExport、Spire.Barcode、Spire.DocViewer、Spire.PDFViewer、Spire.OfficeViewer、Spire.Email。
版本信息如下:
- Spire.Doc.dll v12.8.12
- Spire.Pdf.dll v10.9.0
- Spire.XLS.dll v14.9.5
- Spire.Presentation.dll v9.9.2
- Spire.Barcode.dll v7.3.3
- Spire.Email.dll v6.6.0
- Spire.DocViewer.Forms.dll v8.8.1
- Spire.PdfViewer.Asp.dll v7.12.23
- Spire.PdfViewer.Forms.dll v7.12.23
- Spire.Spreadsheet v7.5.2
- Spire.OfficeViewer.Forms.dll v8.7.15
- Spire.DataExport.dll v4.9.0
- Spire.DataExport.ResourceMgr.dll v2.1.0
https://www.e-iceblue.cn/Downloads/Spire-Office-NET.html
Spire.XLS
新功能:
- 新增 OleObjectType.Msg 类型来识别 Msg 格式的 OLE 对象。
- 新增 workbook.ProhibitDtd = true 属性对 DTD 进行禁用处理。
- 支持 BAHTTEXT 公式。
- 支持了给透视表的行域/列域添加过滤器的功能。
- 支持了 TEXTBEFORE 公式。
- 支持了 TEXTSPLIT 公式。
- 支持了 TEXTAFTER 公式。
Workbook wb = new Workbook();
wb.LoadFromFile(inputFile);
Worksheet sheet =wb.Worksheets[0];
OleObjectType type;
if (sheet.HasOleObjects)
{
for (int i = 0; i < sheet.OleObjects.Count; i++)
{
var Object = sheet.OleObjects[i];
type = sheet.OleObjects[i].ObjectType;
switch (type)
{
case OleObjectType.Msg:
File.WriteAllBytes(outputFile_1, Object.OleData);
break;
......
}
}
}
Workbook workbook = new Workbook();
workbook.ProhibitDtd = true;
workbook.LoadFromFile(inputFile);
workbook.SaveToFile(outputFile, ExcelVersion.Version2013);
workbook.Dispose();
Workbook workbook = new Workbook();
workbook.Worksheets[0].Range["A3"].Value2 = 1234;
workbook.Worksheets[0].Range["C3"].Formula = "=BAHTTEXT(A3)";
workbook.Worksheets[0].Range["A9"].Value = "1234";
workbook.Worksheets[0].Range["C9"].Formula = "=BAHTTEXT(A9)";
workbook.SaveToFile(outputFile, ExcelVersion.Version2013);
workbook.Dispose();
XlsPivotTable pt1 = workbook.Worksheets["PivotTable_1"].PivotTables[0] as XlsPivotTable;
pt1.RowFields[0].AddValueFilter(PivotValueFilterType.Between, pt1.DataFields[0], 100000, 1000000);
pt1.ColumnFields[0].AddValueFilter(PivotValueFilterType.Between, pt1.DataFields[0], 100000, 1000000);
pt1.CalculateData();
workbook.Worksheets[0].Range["A1"].Formula = "=TEXTBEFORE(\"Red riding hood’s, red hood\", \"hood\")";
workbook.Worksheets[0].Range["B2:D2"].FormulaArray = "=TEXTSPLIT(A2, \" \")";
workbook.Worksheets[0].Range["A3"].Formula = "=TEXTAFTER(\"Red riding hood’s, red hood\", \"\")";
问题修复:
- 修复了转换 Excel 文档到图片时内容不正确的问题。
- 修复了复制含有图表的工作表时程序抛出异常 "System.InvalidCastException" 的问题。
- 修复了转换 Excel 文档到 PDF 文档时小数点后的数据有差异的问题。
- 修复了转换 Excel 文档到图片时表格边框的颜色不一致的问题。
- 修复了转换 Excel 文档到 CSV 文档时内容不正确的问题。
- 修复了给一个单元格内容设置不同字体样式时设置顺序影响到结果不一致的问题。
- 修复了转换 Excel 文档到 HTML 文档时图标丢失的问题。
- 修复了转换 Excel 文档到图片时透视表数据丢失的问题。
- 修复了使用 MarkerDesigner 功能进行数据求和的结果不正确的问题。
- 修复了转换图表到图片时程序抛出 System.OutOfMemoryException 异常的问题。
- 修复了另存为 XLSX 文档时格式被改变的问题。
- 修复了转换 Excel 文档到 PDF 文档时单词之间的间距变大的问题。
- 修复了转换 Excel 文档到 PDF 文档时文本换行不正确的问题。
Spire.PDF
问题修复:
- 优化了打印 PDF 文档的速度。
- 修复了转换 PDF 文档到图片时内容空白的问题。
- 修复了压缩 PDF 文档时程序抛出 System.FormatException: "Header checksum illegal" 异常的问题。
- 修复了转换 PDF 文档到 OFD 文档时程序抛出 System.NullReferenceException: "Object reference not set to an instance of an object." 异常的问题。
- 修复了提取图片时程序抛出 System.Exception: "Header of the stream can not be read." 异常的问题。
- 修复了转换 SVG 文件到 PDF 文档时内容不正确的问题。
- 修复了转换 SVG 文件到 PDF 文档时字体错误的问题。
- 修复了转换 PDF 文档到图片时程序抛出 System.IndexOutOfRangeException: "Index was outside the bounds of the array." 异常的问题。
- 修复了获取字体时程序抛出 System.NullReferenceException: "Object reference not set to an instance of an object." 异常的问题。
- 修复了多次提取文本时结果不正确的问题。
- 修复了转换 PDF 文档到 PDFA1B 文档时程序抛出 System.NullReferenceException: "Object reference not set to an instance of an object." 异常的问题。
Spire.Presentation
新功能:
- 在执行转换功能时,支持设置全局的字体目录。
- 新增 IChart.ChartData.LastRowIndex 和 IChart.ChartData.LastColIndex 两个属性,用于获取图表的数据源的最后一行和最后一列。
Presentation.SetCustomFontsDirctory("myfonts");
Presentation ppt = new Presentation();
ppt.LoadFromFile(inputFile);
StringBuilder stringBuilder= new StringBuilder();
IChart chart = ppt.Slides[0].Shapes[0] as IChart;
if (chart != null)
{
int lastRow = chart.ChartData.LastRowIndex;
int lastCol = chart.ChartData.LastColIndex;
sb.AppendLine("lastRow" + lastRow + "\r\n" + "lastColumn" + lastCol);
int dataRow = chart.Series[2].Values[chart.Series[2].Values.Count - 1].Row;
int dataColumn = chart.Series[2].Values[chart.Series[2].Values.Count - 1].Column;
sb.AppendLine("dataRow" + datarow + "\r\n" + "dataColumn" + dataColumn);
chart.ChartData.Clear(dataRow + 1, 0, lastRow + 1, lastCol + 1);
chart.ChartData.Clear(0, dataColumn + 1, lastRow + 1, lastCol + 1);
}
File.WriteAllText(outputFile_T,stringBuilder.ToString());
ppt.SaveToFile(outputFile, FileFormat.Pptx2013);
ppt.Dispose();
问题修复:
- 修复了复制形状时,类型由 "graphic" 变成 "image" 的问题。
- 修复了转换 PPTX 文档到 SVG 文档时,内容不正确的问题。