翻譯|產品更新|編輯:龔雪|2025-10-17 10:35:48.277|閱讀 10 次
概述:DevExpress WinForms控件v25.1日前已經全新發布,新版本的電子表格組件、富文檔編輯器功能得到了全面升級等,歡迎下載最新版體驗!
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
DevExpress WinForms擁有180+組件和UI庫,能為Windows Forms平臺創建具有影響力的業務解決方案。DevExpress WinForms能完美構建流暢、美觀且易于使用的應用程序,無論是Office風格的界面,還是分析處理大批量的業務數據,它都能輕松勝任!
DevExpress WinForms控件v25.1日前已經全新發布,新版本的電子表格組件、富文檔編輯器功能得到了全面升級等,歡迎下載最新版體驗!
DevExpress技術交流群12:1028386091 歡迎一起進群討論
DevExpress WinForms Spreadsheet(電子表格)控件現在支持OLE對象,OLE(對象鏈接和嵌入)允許您鏈接外部文件并將數據(電子表格,PDF,郵件消息,PPT等)嵌入到Excel文檔中。
有了OLE Object的支持,您可以執行以下操作:
OLE對象由OleObject接口表示,文檔作為一個獨特的形狀,OLE對象繼承基礎形狀接口的所有設置。形狀設置定義OLE對象圖標的外觀、位置和內部對象屬性(包括名稱、圖標大小、圖標在工作表中的位置、所有文本等)。
要訪問工作表中的OLE對象,請使用集合,它們也可以通過base集合獲得, 和方法允許您在工作表中創建新的鏈接或嵌入OLE對象。
C#
Worksheet worksheet = spreadsheetControl.ActiveWorksheet; CellRange oleIconRange = worksheet.Range["B4:D6"]; SpreadsheetImageSource oleIcon = SpreadsheetImageSource.FromFile("oleIcon.png"); // Create linked OLE object. OleObject oleObjectLinked = worksheet.OleObjects.AddLinkedOleObject( oleIconRange, "package.pdf", OleObjectType.Package, oleIcon); // Create embedded OLE object from byte array. byte[] sourceData = File.ReadAllBytes("package.pdf"); OleObject oleObjectEmbedded1 = worksheet.OleObjects.AddEmbeddedOleObject( oleIconRange, sourceData, OleObjectType.Package, oleIcon); // Create embedded OLE object from file stream. using (var stream = File.OpenRead("package.pdf")) { OleObject oleObjectEmbedded2 = worksheet.OleObjects.AddEmbeddedOleObject( oleIconRange, stream, OleObjectType.Package, oleIcon); }
您還可以提取和分析鏈接的和嵌入的數據。使用屬性來確定OLE對象類型(鏈接的或嵌入的),和方法允許您根據OLE對象類型提取附加信息。對于鏈接的對象,您可以使用屬性獲得鏈接的文件名。對于嵌入對象,您可以使用方法獲取原始二進制內容,或者使用方法將嵌入內容保存到文件中。
C#
Worksheet worksheet = spreadsheetControl.ActiveWorksheet OleObject oleObject = worksheet.OleObjects[0]; if(oleObject.InsertType == OleObjectInsertType.Linked) { OleObjectLinkedContent linkedContent = oleObject.AsLinkedContent(); string linkedFileName = linkedContent.FileName; } if(oleObject.InsertType == OleObjectInsertType.Embedded) { OleObjectEmbeddedContent embeddedContent = oleObject.AsEmbeddedContent(); byte[] oleRawData = embeddedContent.GetRawData(); if (oleObject.Type == OleObjectType.AdobeAcrobatDocument) using (FileStream stream = new FileStream("embedded_document.pdf", FileMode.Create, FileAccess.Write)) embeddedContent.SaveAs(stream); }
您還可以從電子表格中刪除OLE對象,使用、或方法刪除單個OLE對象,或使用OleObjectCollectionClear方法從工作表中刪除所有OLE對象。
C#
OleObject oleObject = worksheet.OleObjects[0]; // Remove the current OLE object. oleObject.Delete(); // or worksheet.OleObjects.Remove(oleObject); // Remove all OLE objects in the collection. worksheet.OleObjects.Clear();
注意:OLE對象支持僅在基于OpenXML的文件格式(XLSX、XLSM、XLTX和XLTM)中可用。
v25.1增強了Right-to-Left文本呈現引擎(改進了段落、頁眉和頁腳、編號列表、表格和形狀中的文本順序,雙向文本包括從右到左和從左到右混合文本塊)。
當您通過用戶界面或代碼生成PDF文件、圖像或打印輸出時可用。
v25.1增加了CJK文本換行和斷行規則支持,在以前的版本中,富文本編輯器將拉丁文本換行規則(依賴于空格字符和標點符號)應用于中文、日文和韓文文本。
新的換行規則正確地在文檔段落、頁眉和頁腳、表格和形狀中的單個字符之間應用換行,使用CJK文本換行規則的文檔現在可以打印/導出為具有適當文本布局的PDF和圖像格式。
v25.1擴展了Word文檔到PDF的導出引擎,內置了Word內容控件到PDF AcroForm字段的轉換。
DevExpress文字處理工具自動轉換以下內容控件類型:
注意:
構建塊和重復部分控件導出為常規文本。
由于PDF格式的限制,從富文本內容控件生成的PDF文本字段使用原始富文本內容控件的第一個單詞的格式。
分割頁面或包含復雜對象(如表)的富文本內容控件被導出為常規文本。
要啟用此功能,您必須:
您也可以使用Print Preview -> PDF Export Options對話框從用戶界面激活此功能。
C#
using DevExpress.XtraPrinting; using DevExpress.XtraRichEdit; richEditControl.LoadDocument("input_content_controls.docx"); PdfExportOptions options = new PdfExportOptions(); options.ExportEditingFieldsToAcroForms = true; richEditControl.ExportToPdf("output_with_acroform.pdf", options);
現在可以通過編程方式比較兩個Word文檔,新的CompareDocumentExtensions.Compare擴展方法允許您執行以下操作:
注意:輸入文檔不得包含文檔修訂,否則Compare方法將拋出異常。
C#
richEditControl.LoadDocument("FirstLook_original.docx"); Document originalDocument = richEditControl.Document; RichEditDocumentServer wordProcessor = new RichEditDocumentServer(); wordProcessor.LoadDocument("FirstLook_revised.docx"); Document revisedDocument = wordProcessor.Document; // Setup compare options, compare two documents, // and add revisions to the RichEditControl document. Document docWithRevisions = originalDocument.Compare(revisedDocument, new CompareDocumentOptions() { Author = "Jane Doe", DateTime = DateTime.Now, ComparisonLevel = ComparisonLevel.Word, CompareCaseChanges = false, CompareFormatting = true, CompareHeadersAndFooters = true, CompareTextBoxes = true }, ComparisonTargetType.Original);
注意:CompareDocumentExtensionsCompare擴展方法是在DevExpress.Docs.v25.1.dll程序集中定義的,將這個程序集添加到您的項目中,或者從離線包源中安裝 NuGet包,以使用CompareDocumentExtensions.Compare方法。
重要提示:您需要一個激活的DevExpress Office File API Subscription或DevExpress Universal Subscription才能在生產代碼中使用這個類。
有了新的功能,您可以:
C#
void messageButton_Click(object sender, EventArgs e) { XtraMessageBoxArgs args = new XtraMessageBoxArgs() { Caption = "Tip", Text = "Hello DevExpress!", Buttons = new DialogResult[] { DialogResult.OK }, }; args.ImageOptions.SvgImage = svgImageCollection1["info"]; args.ImageOptions.SvgImageSize = new Size(32, 32); args.Showing += Args_Showing; XtraMessageBox.Show(args); } void Args_Showing(object sender, XtraMessageShowingArgs e) { // Get the screen working area. Rectangle workingArea = Screen.PrimaryScreen.WorkingArea; // Calculate bottom-right position. int x = workingArea.Right - e.MessageBoxForm.Width; int y = workingArea.Bottom - e.MessageBoxForm.Height; // Define message box start position. e.MessageBoxForm.StartPosition = FormStartPosition.Manual; e.MessageBoxForm.Location = new Point(x, y); // Display the message box in the Windows taskbar. e.MessageBoxForm.ShowInTaskbar = true; }
慧都是?家?業數字化解決?案公司,專注于軟件、?油與?業領域,以深?的業務理解和?業經驗,幫助企業實現智能化轉型與持續競爭優勢。
慧都是DevExpress的中國區的合作伙伴,DevExpress作為用戶界面領域的優秀產品,幫助企業高效構建權限管理、數據可視化(如網格/圖表/儀表板)、跨平臺系統(WinForms/ASP.NET/.NET MAUI)及行業定制解決方案,加速開發并強化交互體驗。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@ke049m.cn
文章轉載自:慧都網