GrapeCity Documents V6.0 Update 2釋出,新增支援SpreadJS的.sjs檔案格式

2023-08-30 12:01:58

近日,GrapeCity Documents 正式迎來其V6.2 的釋出更新,能夠支援 SpreadJS 中 .sjs 型別的檔案。這一重大更新將為使用者帶來更多地驚喜。

.sjs檔案有兩個關鍵優勢:空間更小且匯入匯出速度更快。通過採用 .sjs格式,GcExcel實現了更高效的檔案壓縮,從而使檔案大小大幅減小。這不僅節省了儲存空間,還方便了檔案的傳輸和共用。此外,GcExcel還針對 .sjs檔案進行了優化,使其在匯入和匯出過程中的速度得到顯著提升。

下面將詳細介紹 GrapeCity Documents V6.0 Update2 中的新特性,在此之前,如果您已經在使用了GrapeCity Documents產品,希望進一步瞭解新功能,可前往葡萄城官網下載最新版產品安裝包,以便進行同步體驗。

以下是本次釋出的關鍵內容:

1. 伺服器端表格元件 GrapeCity Documents for Excel 更新說明

支援SpreadJS的.sjs檔案格式

在 GcExcel 的 V6.0 Update 2 版本中,增加了對 SpreadJS .sjs 檔案格式的支援。通過匯出為 .sjs 格式,可以實現更短的匯出時間和更小的檔案尺寸。現在,您可以將 xlsx、xlsm、csv、ssjson 等格式的檔案匯出為 .sjs 格式,以便更高效地處理資料。

新版本增強了Workbook類上的open和save方法,支援.sjs檔案,當載入儲存.sjs檔案時,可以通過OpenFileFormat和SaveFileFormat,來選擇Sjs列舉項。

由於對.sjs檔案格式的支援,使得新版本可以滿足以下功能:

  • 快速將Excel檔案轉換為.sjs格式。
  • 以更小的佔用空間儲存檔案。
  • 從.sjs檔案中壓縮的JSON檔案生成單個JSON字串
  • 使各種可用選項自定義SpreadJS.sjs檔案的開啟和儲存

除此之外,伺服器端表格元件還新新增兩個類,SjsOpenOptionsSjsSaveOptions。在匯入/匯出.sjs檔案時,可以通過這兩個類來客製化包含/排除特定的功能。

以下程式碼用於展示載入 SpreadJS 的 .sjs 檔案,並通過使用 SjsOpenOptions 排除公式和樣式,然後使用 GcExcel 開啟並儲存該檔案的過程。

 // 建立一個新的工作簿
 Workbook workbook = new Workbook();
 InputStream stream = this.getResourceStream("sjs\\LoanDetails.sjs");

 // .sjs 檔案格式的 OpenOptions
 SjsOpenOptions openOptions = new SjsOpenOptions();
 openOptions.setIncludeFormulas(false);
 openOptions.setIncludeStyles(false);

 // GcExcel 支援使用 OpenOptions 開啟 .sjs 檔案格式
 workbook.open(stream, openOptions);

 // 儲存為 .sjs 檔案
 workbook.save("OpenSjsWithOpenOptions.sjs");


形狀文字的對齊選項

GcExcel在ITextRange介面中新增了新的TextAlignment屬性,用於獲取或設定形狀中文字範圍或段落的對齊方式。該屬性可以給文字設定對齊方式,如左對齊、右對齊、居中、分散和兩端對齊。在需要按照UI設計規則或按照資料格式對齊文字(例如將文字左對齊或將數位右對齊)的場景中非常有幫助。

以下程式碼用於展示將形狀中多個段落的對齊方式設定為居中和左對齊:

 IShape shape = worksheet.Shapes.AddShape(AutoShapeType.RoundedRectangle, (double)10, (double)10, (double)320, (double)150);
 shape.TextFrame.TextRange.TextAlignment = TextAlignmentAnchor.Left;
 shape.TextFrame.TextRange.Font.Name = "Calibri";
 shape.TextFrame.TextRange.Font.Size = 16;
 shape.TextFrame.TextRange.Font.Color.RGB = Color.Black;
 shape.TextFrame.TextRange.Font.Underline = TextUnderlineType.None;

 shape.TextFrame.TextRange.Paragraphs.Add("Quarterly Results");
 shape.TextFrame.TextRange.Paragraphs[0].TextAlignment = TextAlignmentAnchor.Center;
 shape.TextFrame.TextRange.Paragraphs[0].Font.Size = 28;
 shape.TextFrame.TextRange.Paragraphs[0].Font.Underline = TextUnderlineType.Single;
 shape.TextFrame.TextRange.Paragraphs.Add("");

 shape.TextFrame.TextRange.Paragraphs.Add("Business Domain: E-Commerce");
 shape.TextFrame.TextRange.Paragraphs[2].TextAlignment = TextAlignmentAnchor.Left;

 shape.TextFrame.TextRange.Paragraphs.Add("Quarter: Q4");
 shape.TextFrame.TextRange.Paragraphs[3].TextAlignment = TextAlignmentAnchor.Left;

在形狀和圖表中設定垂直文字方向

在某些檔案應用中,使用者希望將文字方向設定為垂直方向。GcExcel在形狀和圖表的API中新增了Direction屬性:

  • IShape.TextFrame.Direction:用於形狀的文字方向。
  • ITickLabels.Direction:用於圖表軸上刻度標籤的文字方向。
  • IChartTitle.Direction 或 IChartTitle.TextFrame.Direction:用於圖表標題的文字方向。
  • IAxisTitle.Direction 或 IAxisTitle.TextFrame.Direction:用於座標軸標題的文字方向。
  • IDataLabels.Direction:用於指定系列資料標籤的文字方向。
  • IDataLabel.Direction 或 IDataLabel.TextFrame.Direction:用於圖表資料點上資料標籤的文字方向。

Direction屬性接受TextDirection列舉選項,可設定文字在以下方向上的方向:

  • TextDirection.Horizontal:表示文字水平顯示。
  • TextDirection.Vertical:表示文字垂直顯示。
  • TextDirection.Rotate90:表示文字將旋轉90度。
  • TextDirection.Rotate270:表示文字將旋轉270度。
  • TextDirection.Stacked:表示文字將堆疊顯示,讀取順序從左到右。
  • TextDirection.StackedRtl:表示文字將堆疊顯示,讀取順序從右到左。

以下程式碼用以將文字的TextDirection設定為Stacked方向:

var shape = worksheet.Shapes.AddShape(AutoShapeType.Rectangle, worksheet.Range["C2:F12"]);
 shape.TextFrame.TextRange.Add("歡迎來到葡萄城");

 //將文字方向設定為堆疊,並且文字的閱讀順序從左到右。
 shape.TextFrame.Direction = TextDirection.Stacked;

支援雙面列印 - 該特性僅適用於.NET版本

有時候使用者需要在一頁的兩面列印一個包含長工作表的工作簿。GcExcel .NET提供了PrintOutOptions類中的Duplex列舉來啟用/禁用頁面上的雙面列印。該列舉共有四個選項,使用者可以根據需要選擇列印工作簿的方式:

Duplex.Default:表示印表機的預設雙面列印設定。

Duplex.Simplex:表示單面列印。

Duplex.Vertical: 表示雙面垂直列印。

Duplex.Horizontal: 表示雙面水平列印。

以下程式碼用於 展示將以雙面垂直列印方式列印三份工作簿副本。

// 建立列印選項。
 PrintOutOptions options = new PrintOutOptions();
 // 設定列印的印表機名稱為 "Printer"。
 options.ActivePrinter = "Printer";
 // 列印3份副本。
 options.Copies = 3;
 // 設定雙面垂直列印。
 options.Duplex = System.Drawing.Printing.Duplex.Vertical;
 // 使用 "Printer" 列印此工作簿。
 workbook.PrintOut(options);

2. 伺服器端 PDF 元件 GrapeCity Documents for PDF 更新說明

對PDF檔案開啟和儲存進行增強

在GcExcel V6.0 Update 2 版本中,GcPdf在處理由其他軟體生成的現有PDF檔案方面進行了改進,並提供以下優勢:

  1. GcPdf現在可以載入和儲存可能不嚴格符合PDF規範的PDF檔案。
  2. GcPdf將保留嵌入在PDF檔案中的任何非PDF規範的自定義資料。
  3. 載入PDF檔案的平均速度得到了改善。

這些改進使得GcPdf能夠更好地處理各種PDF檔案,即使這些檔案不是完全符合PDF規範或包含一些非標準的資料。同時,載入PDF檔案的速度也得到了提升。

在密碼未知的情況下處理受密碼保護的檔案

GcPdf允許在不指定密碼的情況下處理受密碼保護的檔案。在載入受密碼保護的檔案後,您可以執行以下操作而無需指定密碼:

  • 讀取/寫入不基於PDF字串物件的屬性,例如:
  • 您可以獲取/設定CheckBoxField或RadioButtonField的值。
  • 獲取某個檔案的特定統計資訊,例如獲取頁面數、註釋數等。
  • 獲取或更改檔案後設資料,因為後設資料通常未加密。
  • 更改某些型別欄位的值:CheckBoxField、RadioButtonField;可以更改TextBoxField、CombTextField的值,但有一些限制。
  • 如果可以在不使用PDF字串的情況下定義新物件,您可以新增該物件。例如,您可以向一個頁面或所有頁面新增一個SquareAnnotation。

新增了DecryptionOptions類來表示解密選項。當載入加密的PDF時,您可以將其作為(可選)引數傳遞給GcPdfDocument.Load()方法。通過將DecryptionOptions.ThrowExceptionIfInvalidPassword設定為false(預設為true),以允許載入受密碼保護的PDF而無需指定其密碼。另一個相關的標誌是DecryptionOptions.ThrowExceptionIfUnsupportedSecurityOptions,預設情況下也為true。將其設定為false可以允許GcPdf載入具有未知或損壞的安全處理程式的檔案。

以下程式碼範例展示瞭如何向受密碼保護的PDF新增註釋,而無需指定密碼:

using var fs = File.OpenRead("financial-report.pdf");
 var doc = new GcPdfDocument();
 doc.Load(fs, new DecryptionOptions() { ThrowExceptionIfInvalidPassword = false, ThrowExceptionIfUnsupportedSecurityOptions = false });
 // 獲取第一頁的尺寸:
 var page = doc.Pages[0];
 var pageSize = page.Size;
 // 新增一個方形註釋:
 SquareAnnotation sa = new SquareAnnotation();
 sa.Page = page;
 sa.Rect = new RectangleF(10, 10, pageSize.Width - 20, pageSize.Height - 20);
 sa.Color = Color.Red;
 doc.Save("AnnotationAdded.pdf");


3. 伺服器端 Word 元件 GrapeCity Documents for Word 更新說明

對於Office Math函數和轉換為MathML的支援

在新版本中,GcWord支援在Word檔案中建立和編輯Office Math內容。GcWord中的OMath支援包括完整的API,用於處理在科學、數學和通用目的的Word檔案中廣泛使用的數學符號、公式和方程。以下是OMath支援引入的新API的主要亮點:

  • 用於表示GcWord中的Office Math內容的兩個主要類是OMathParagraph和OMath。OMathParagraph表示帶有Office Math內容的段落,而OMath表示內聯的Office Math區域,可以包含在OMathParagraph或常規段落中。
  • 提供了專門的類(如OMathFunction、OMathEquationArray、OMathRadical等),用於表示OMath區域中的各種數學結構。這些類都是從通用的抽象OMathStruct基礎類別派生而來。
  • 可以通過新的RangeBase屬性(OMathParagraphs、OMaths、OMathStructs、OMathElements和OMathMatrixRows)存取Office Math內容。
  • 為了方便新增MS Word支援的內建方程,RangeBase、OMathParagraph、OMath和OMathElement類上提供了方便的Add/Insert方法,接受一個OMathBuiltInEquation列舉值,用於識別所需的方程。
  • 包含一個實用的MathMLConverter類,可以方便地在GcWord的OMath內容和MathML之間進行轉換。

有關GcWord中OMath支援的詳細資訊,請參閱Office Math檔案。

以下程式碼用於展示使用OMath類和其函數將一個方程新增到Word檔案中的過程。

var sampleDoc = new GcWordDocument();
 var om = sampleDoc.Body.AddParagraph().AddOMathParagraph().AddOMath();
 om.AddRun("Γ").Font.Italic = false;
 om.AddDelimiter(new string[] { "z" });
 om.AddRun("=");
 var nary = om.AddNary("", "0", "∞", "∫");
 nary.Base.AddSuperscript("t", "z-1");
 nary.Base.AddSuperscript("e", "-t");
 nary.Base.AddRun("dt");
 om.AddRun("=");
 var frac = om.AddFraction();
 var superscript = frac.Numerator.AddSuperscript("e", "-");
 superscript.Superscript.AddRun("γ").Font.Bidi = true;
 superscript.Superscript.AddRun("z");
 frac.Denominator.AddRun("z");
 nary = om.AddNary("", "k=1", "∞", "∏");
 superscript = nary.Base.AddSuperscript("", "-1");
 var delimiter = superscript.Base.AddDelimiter();
 var item = delimiter.Items.Add();
 item.AddRun("1+");
 item.AddFraction("z", "k", null);
 superscript = nary.Base.AddSuperscript("e", "z");
 superscript.Superscript.AddRun("/").OMathFormat.IsLiteral = true;
 superscript.Superscript.AddRun("k");
 om.AddRun(", γ≈0.577216");
 sampleDoc.Save("MathEquation.docx");


以上GrapeCity Documents V6.2的新特性介紹,如果您對產品感興趣,歡迎前往葡萄城官網下載產品安裝包,同步體驗GrapeCity Documents V6.2的全新功能。