DevExpress控件使用交流,DevExpress中国社区Dev联系电话 联系电话:023-68661681

文档控件DevExpress Office File API v24.2亮点:不再支持非Windows系统

来源:   发布时间:2025-04-07   浏览:101次

DevExpress Office File API是一个专为C#, VB.NET 和 ASP.NET等开发人员提供的非可视化.NET库。有了这个库,不用安装Microsoft Office,就可以完全自动处理Excel、Word等文档。开发人员使用一个非常易于操作的API就可以生成XLS, XLSx, DOC, DOCx, RTF, CSV 和 Snap Report等企业级文件。

DevExpress Office File API控件日前正式发布了v24.2,新版本正式官宣不再支持非Windows系统等,欢迎下载最新版组件体验!

DevExpress v24.2正式版下载

DevExpress技术交流群11:749942875      欢迎一起进群讨论

重要变化
GDI+ (Libgdiplus) — 不再支持非Windows系统

由于官方对.NET 8的承诺,以及再去年发布跨平台的基于SkiaSharp的引擎之后,重构了源代码并在非Windows环境(libgdiplus)中删除了所有与GDI+相关的方法调用。

C#

using System.IO;
using DevExpress.XtraRichEdit;
// ...
RichEditDocumentServer wordProcessor = new RichEditDocumentServer();
//...
using(FileStream stream =
new FileStream(resultFilePath, FileMode.Create, FileAccess.Write, FileShare.Read)) {
PdfExportOptions exportOptions = new PdfExportOptions();
exportOptions.PdfUACompatibility = PdfUACompatibility.PdfUA1;

wordProcessor.ExportToPdf(stream, exportOptions);
}
在Windows环境下支持Skia和取消AzureCompatibility属性

多种DevExpress产品(ReportingBI DashboardOffice File API)都带有打印和数据导出功能,适用于受限制的环境,如Microsoft Azure(其中与元文件和字体对象相关的某些GDI/GDI+调用不可用),AzureCompatibility.Enabled属性管理此功能。

在v23.2版本周期中,官方停止了对非Windows环境中此属性切换所提供的功能支持。在v24.2中,官方也在基于Windows的环境中逐步取消了Office File API库中的AzureCompatibility.Enabled切换,建议在针对云/受限环境时使用基于Skia的跨平台图形引擎。

DevExpress Office File API库自动确定所使用的适用绘图引擎,您可以通过使用静态的DevExpress.Drawing.Settings.DrawingEngine选项手动切换到不同的绘图引擎。

C#

DevExpress.Drawing.Settings.DrawingEngine = DevExpress.Drawing.DrawingEngine.Skia;
Spreadsheet Document(电子表格) API
动态数组公式

v24.2扩展了公式计算引擎,并将动态数组集成到Spreadsheet Document API库中。与标准数组公式不同,标准数组公式为每个单元格返回一个值,而动态数组函数返回一个动态的值数组(这个值数组会自动溢出到相邻的单元格中)。

新的函数包括:

  • 动态阵列计算和溢出范围支持。
  • 新的公式错误类型(#SPILL!)。
  • 隐式交叉运算符(@符号)返回单个公式值替代数组。
DevExpress Office File API 24.2新版本图集

现在您可以在Spreadsheet Document API库中导入包含动态数组公式的Excel文档,调用Workbook.Calculate方法重新计算这些公式,并将计算后的文档保存为Excel格式,打印和导出为PDF也可用。

此外您可以在代码中管理动态数组公式,v24.2发布了以下新API:

如果您想使用新的API获取、插入或清除动态数组公式,请参阅以下代码片段:

C#

Worksheet worksheet = workbook.Worksheets.ActiveWorksheet;

// Insert dynamic array formulas
worksheet["A1"].DynamicArrayFormulaInvariant = "={\"Red\",\"Green\",\"Orange\",\"Blue\"}";
worksheet.DynamicArrayFormulas.Add(worksheet["A2"], "=LEN(A1:D1)");

// Clear dynamic array formulas
Cell cell = worksheet.Cells["B2"];
if (cell.HasDynamicArrayFormula) {

CellRange dynamicArrayRange = cell.GetDynamicArrayFormulaRange();
dynamicArrayRange.Clear();
}

worksheet.DynamicArrayFormulas.Remove(worksheet.Cells["A1"].GetDynamicArrayFormulaRange());

要抑制动态数组公式计算并恢复到以前的操作,请将WorkbookCapabilitiesOptions.DynamicArrayFormulas属性设置为DocumentCapability.Disabled。在本例中,动态数组公式将作为标准数组公式计算。

在单元格中嵌入图像

DevExpress Spreadsheet Document API库(v24.2)允许您将图像直接嵌入到工作表单元格中(使用Microsoft Excel的“Place in Cell”选项),还可以导入在工作表单元格中嵌入图像的文档,打印这些文档,将其导出为PDF并将其保存到支持的Excel文件中(不会丢失内容)。

DevExpress Office File API 24.2新版本图集

v24.2包含了用于在代码中管理单元嵌入图像的新API,嵌入的图像存储为单元格值。若要确定单元格是否有嵌入图像,请使用CellValueIsCellImage属性。使用CellValueImageValue属性获取单元格图像值作为OfficeImage对象(允许您检查图像格式或获取图像字节)。若要在单元格中插入图像,请将其分配给CellRangeValue属性。Spreadsheet Document API库支持以下对象类型作为图像源:

  • Byte[]
  • System.IO.Stream
  • System.Drawing.Image
  • DevExpress.Drawing.DXImage
  • DevExpress.Office.Utils.OfficeImage

此外,v24.2实现了指定图像Alt Text(有意义的描述)值和将单元格图像标记为装饰性的选项,这些设置可以通过Cell.ImageInfo属性获得。

下面的代码片段演示了这个新的API:

C#

byte[] imageBytes = File.ReadAllBytes("image.png");
MemoryStream imageStream = new MemoryStream(imageBytes);
DXImage dximage = DXImage.FromStream(imageStream);

// Insert cell images from a byte array, stream and DXImage object
worksheet.Cells["A1"].Value = imageBytes;
worksheet.Cells["A2"].Value = imageStream;
worksheet.Cells["A3"].Value = dximage;

// Set image Alt Text values
worksheet.Cells["A1"].ImageInfo.AlternativeText = "Image AltText";

// Mark the cell image as decorative
if (worksheet.Cells["A2"].Value.IsCellImage)
worksheet.Cells["A2"].ImageInfo.Decorative = true;

// Save the cell image to a new file
OfficeImage cellImage = worksheet.Cells["A1"].Value.ImageValue;

if (cellImage.RawFormat == OfficeImageFormat.Png) {

byte[] cellImageBytes = cellImage.GetImageBytes(cellImage.RawFormat);
File.WriteAllBytes("saved_image.png", cellImageBytes);
}

// Remove cell image
worksheet.Cells["A3"].ClearContents();
对齐和分布式垂直文本对齐

v24.2增加了对Spreadsheet单元格内的对齐和分布式垂直对齐类型的支持,具有这些对齐选项的Excel文件可以打印并导出为PDF。

您可以使用Cell.Alignment.Vertical属性在代码中指定垂直对齐方式,下面的代码片段指定了代码中的对齐方式:

C#

var workbook = new Workbook();
var worksheet = workbook.Worksheets[0];

Cell cellA1 = worksheet.Cells["A1"];
cellA1.Value = "Centered and Justified";
cellA1.Alignment.Horizontal = SpreadsheetHorizontalAlignment.Center;
cellA1.Alignment.Vertical = SpreadsheetVerticalAlignment.Justify;

workbook.ExportToPdf("Result.pdf");

更多产品资讯及授权,欢迎来电咨询:023-68661681


更多DevExpress线上公开课、中文教程资讯请上中文网获取

关于慧都科技

慧都科技是专注软件工程、智能制造、石油工程三大行业的数字化解决方案服务商。在软件工程领域,我们提供开发控件、研发管理、代码开发、部署运维等软件开发全链路所需的产品,提供正版授权采购、技术选型、个性化维保等服务,帮助客户实现技术合规、降本增效与风险可控。

慧都科技是DevExpress的中国区的合作伙伴,DevExpress作为用户界面领域的优秀产品,帮助企业高效构建权限管理、数据可视化(如网格/图表/仪表盘)、跨平台系统(WinForms/ASP.NET/.NET MAUI)及行业定制解决方案,加速开发并强化交互体验。

本站文章除注明转载外,均为本站原创或翻译
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:DevExpress控件中文网 [https://www.devexpresscn.com/]
本文地址:https://www.devexpresscn.com/post/5113.html

相关产品: DevExpress Universal Subscription,

扫码咨询
电话咨询
023-68661681
返回
顶部