DevExpress WPF擁有120+個控件和庫,將幫助您交付滿足甚至超出企業需求的高性能業務應用程序。通過DevExpress WPF能創建有著強大互動功能的XAML基礎應用程序,這些應用程序專注于當代客戶的需求和構建未來新一代支持觸摸的解決方案。
DevExpress WPF控件近期全新發布v24.2,此版本進一步升級了Spreadsheet(電子表格)組件的功能,歡迎下載最新版體驗!
DevExpress WPF v24.2正式版下載
Spreadsheet(電子表格)組件
動態數組公式
v24.2增強了公式計算引擎,并將動態數組集成到DevExpress WPF?Spreadsheet UI控件中。與標準數組公式不同,標準數組公式為每個單元格返回一個值,而動態數組函數返回一個動態的值數組(這個值數組會自動溢出到相鄰的單元格中)。
新功能包括:
- 動態陣列計算和溢出范圍支持。
- 新的公式錯誤類型(#SPILL!)。
- 隱式交叉運算符(@符號)返回單個公式值替代數組。
您現在可以導入具有動態數組公式的Excel文檔,使用IWorkbookCalculate方法重新計算這些公式,并將具有計算值的文檔保存為Excel文件格式。DevExpress WinForms Spreadsheet控件可以使用單元格編輯器或公式欄插入/編輯動態數組公式。它還可以突出顯示溢出的公式范圍,并自動更新反映文檔修改的公式值,打印和導出為PDF也可用。
此外您可以在代碼中管理動態數組公式,v24.2附帶了以下新API:
- CellRange.DynamicArrayFormula?-?獲取或設置基于當前工作簿區域性的單元格區域動態數組公式。
- CellRange.DynamicArrayFormulaInvariant?-?獲取或設置基于不變區域性的單元格區域的動態數組公式。
- CellRange.HasDynamicArrayFormula?-?指示單元格區域是否包含動態數組公式。
- Cell.IsTopLeftCellInDynamicArrayFormulaRange?-?指示當前單元格是否為動態數組公式范圍中的左上角單元格。
- Cell.GetDynamicArrayFormulaRange()?-?返回動態數組公式溢出的單元格范圍。
- Worksheet.DynamicArrayFormulas?- 返回當前工作表的動態數組公式的集合。
下面的代碼片段使用新的API訪問、插入和清除動態數組公式:
C#
Worksheet worksheet = spreadsheetControl.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 dymanicArrayRange = cell.GetDynamicArrayFormulaRange();
dymanicArrayRange.Clear();
}
worksheet.DynamicArrayFormulas.Remove(worksheet.Cells["A1"].GetDynamicArrayFormulaRange());
要抑制動態數組公式計算并恢復到以前的操作,請將DocumentCapabilities.DynamicArrayFormulas屬性設置為"DocumentCapability.Disabled"。在本例中,動態數組公式將作為標準數組公式計算。
在單元格中嵌入圖像
DevExpress WPF?Spreadsheet控件支持將圖像直接嵌入到工作表單元格中(Microsoft Excel的“Place in Cell”選項),您可以導入在工作表單元格中嵌入圖像的文檔,并將其保存為XLSX格式(不會丟失內容)。
v24.2還發布了用于在代碼中管理單元嵌入圖像的新API,嵌入的圖像存儲為單元格值,若要確定單元格是否有嵌入圖像,請使用CellValue.IsCellImage屬性。使用CellValue.ImageValue屬性獲取單元格值作為OfficeImage對象(允許您檢查圖像格式或獲取圖像字節),要在單元格中插入圖像,請將其分配給CellRange.Value屬性。
電子表格控件支持以下對象類型作為圖像源:
- Byte[]
- System.IO.Stream
- System.Drawing.Image
- DevExpress.Drawing.DXImage
- DevExpress.Office.Utils.OfficeImage
此外,v24.2實現了指定圖像Alt Text(有意義的描述)值的選項,以及將單元格圖像標記為裝飾性的功能。這些設置可通過Cell.ImageInfo屬性獲得。下面的代碼片段插入、刪除和保存單元格圖像(并修改可訪問性設置):
C#
byte[] imageBytes = File.ReadAllBytes("image.png");
MemoryStream imageStream = new MemoryStream(imageBytes);
DXImage dximage = DXImage.FromStream(imageStream);// Insert cell images using 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
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();
AI驅動的圖像文本對話框
新的AI支持的Alt Text對話框允許您為Excel文檔中的形狀對象設置可訪問的描述,或將非信息文檔圖形標記為裝飾性(此設置允許屏幕閱讀器在掃描文檔時忽略裝飾性圖形),您可以使用Alt Text對話框來使用AI的力量為文檔圖像生成有意義的描述。
要啟用此功能,需要注冊一個AI服務,然后在WPF應用程序中附加GenerateImageDescriptionBehavior操作:
XAML
<dx:ThemedWindow
xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dx="https://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:dxsps="https://schemas.devexpress.com/winfx/2008/xaml/spreadsheet"
xmlns:dxmvvm="https://schemas.devexpress.com/winfx/2008/xaml/mvvm"
xmlns:dxai="https://schemas.devexpress.com/winfx/2008/xaml/ai"
x:Class="AIAssistant.MainWindow"
Title="MainWindow" Height="800" Width="800">
<Grid>
<dxsps:SpreadsheetControl CommandBarStyle="Ribbon" ShowStatusBar="True" ShowFormulaBar="True">
<dxmvvm:Interaction.Behaviors>
<dxai:GenerateImageDescriptionBehavior x:Name="GenerateImageDescription"/>
</dxmvvm:Interaction.Behaviors>
</dxsps:SpreadsheetControl>
</Grid>
</dx:ThemedWindow>
如果GenerateImageDescriptionBehavior沒有在WPF電子表格控件中注冊,則生成按鈕將被禁用。只能為文檔圖像生成描述,當選擇形狀或圖表對象時,Generate選項將被禁用。
新的內置對話框可以從形狀的上下文菜單中獲得,要激活Alt Text對話框,請選擇文檔形狀、圖像或圖表,打開上下文菜單并選擇"View Alt Text..."上下文菜單項。
對齊和分布式垂直文本對齊
DevExpress WPF v24.2增加了對Spreadsheet單元格內的對齊和分布式垂直對齊類型的支持,具有這些對齊選項的Excel文件可以預覽、打印和導出為PDF。
您可以使用CellAlignmentVertical屬性在代碼中指定垂直對齊方式,下面的代碼片段指定了代碼中的對齊方式:
C#
var worksheet = spreadsheetControl.ActiveWorksheets;Cell cellA1 = worksheet.Cells["A1"];
cellA1.Value = "Centered and Justified";
cellA1.Alignment.Horizontal = SpreadsheetHorizontalAlignment.Center;
cellA1.Alignment.Vertical = SpreadsheetVerticalAlignment.Justify;