常見問題

針對新 HotXLS 使用者最常遇到的問題提供實用解答

本頁面彙整了在安裝 HotXLS、選擇 XLS 或 XLSX 門面、評估試用版、匯出報表以及部署 Delphi 或 C++Builder 應用程式時最容易出現的問題

原生程式庫 活頁簿在您的 Delphi 或 C++Builder 行程內部直接產生
XLS 與 XLSX 各自獨立的門面讓傳統的 XLS 程式碼保持穩定,而 XLSX 能夠獨立發展
安裝程式優先 請使用安裝程式進行一般安裝;它會自動偵測支援的 RAD Studio 版本
無執行期授權費 應用程式部署時無需按副本繳納執行期費用

安裝與 IDE 設定

多數設定問題主要涉及 IDE 偵測、支援的版本以及選用的 C++Builder 內容

支援哪些 Delphi 和 C++Builder 版本?

完整套件支援從 XE5 到 RAD Studio 13.1 Florence 版本的 Delphi 及 C++Builder。目前的試用版安裝程式提供了適用於 RAD Studio 11.3、12.3 和 13.1 的套件

為什麼安裝程式只列出了部分 IDE 版本?

IDE 頁面僅列出在目前機器上偵測到的受支援 RAD Studio 安裝。如果未列出某個受支援的 IDE,請確認 RAD Studio 已安裝,並確保安裝程式執行在擁有這些 IDE 設定權限的同一個 Windows 使用者設定檔下

設計期元件會出現在哪裡?

安裝程式會註冊一個名為 losLab 的工具面板索引標籤。其中的視覺化元件為 DataToXLS 和 GridToXLS

安裝後為什麼缺少 C++Builder 套件或示範專案?

C++Builder 的套件檔案與示範專案均為選用安裝內容。若需要 C++Builder 整合或示範,請在安裝時勾選相應的 C++Builder IDE 核取方塊

是否支援 Win32 和 Win64?

是的。HotXLS 為受支援的 IDE 版本提供標準的 Win32 和 Win64 套件輸出。安裝程式可能會為原始碼重新編譯註冊 Win64x 的程式庫路徑,但目前未隨附預先編譯的 Win64x 套件

我需要安裝 Microsoft Excel 嗎?

不需要。HotXLS 可直接讀取、寫入、套用樣式並匯出活頁簿。它不需要 Microsoft Excel、Office 自動化、COM 自動化或其他外部試算表行程

試用版本

試用版在 API 層面與完整版相容,但會在背景自動限制活頁簿的大小

試用版有哪些限制?

針對每個活頁簿,試用版最多允許 5 個工作表,每個工作表最多 100 列和 26 欄。XLS 門面與 XLSX 門面均受同樣限制

為何我的試用版輸出在 Z 欄或第 100 列之後就中斷了?

超出試用限制的寫入操作依然會被 API 接收,但會在儲存檔案時被捨棄。完整版解除了這些限制,且不需要修改原始碼

試用版會截斷我開啟的檔案嗎?

不會。開啟工作表超過 5 個或者行列數超過 100 列和 26 欄的現有活頁簿並不會截斷檔案。這些限制僅針對活頁簿建立之後,由使用者發起的新增工作表和儲存格寫入操作生效

當觸及限制時試用版會顯示警告嗎?

不會。這些限制是靜默觸發的:當寫入超出試用版上限時,不會拋出對話方塊、日誌記錄或任何例外

選擇 API

HotXLS 將經典 XLS API 與現代 XLSX API 相互隔離,以便現有專案能按照各自的節奏平穩過渡

我該使用 lxHandle 還是 lxHandleX?

經典 Excel 97-2003 XLS 工作流及遺留的報表程式碼請使用 lxHandle。Excel 2007+ XLSX 檔案以及 OOXML 專屬特性請使用 lxHandleX 和 TXLSXWorkbook

一個專案可以同時使用兩種門面嗎?

可以。應用程式可以包含這兩個單元,並為每種檔案格式維護獨立的活頁簿物件。這在需要保留舊版 XLS 輸出並同時加入新版 XLSX 報表時十分有用

為何部分 XLSX 特性無法透過舊的 XLS API 取得?

XLS 與 XLSX 基於不同的檔案模型。XLSX 專有的概念,如共用字串、OOXML 樣式、表格、圖表工作表和套件關聯,都已直接置於 lxHandleX 中,而不會強行改造到經典 XLS 門面上

我可以從哪裡找到範例程式碼?

請先查看 Delphi 或 C++Builder 示範資料夾下的 QuickStart 和 ApiTour 示範。關於 XLSX 專屬程式碼,請參考 XLSX 門面總覽及 XLSX 匯出示範

XLSX 特性及限制

XLSX 門面涵蓋了報表產生的常見需求,同時標明了有意留作日後支援的特性

XLSX 支援哪些特性?

TXLSXWorkbook 支援值、公式、明確公式計算、樣式、自訂數字格式、寬高設定、合併儲存格、範圍層級的 HTML 匯出、超連結、註解、圖片、條件格式化、資料驗證、篩選器、表格、圖表、豐富文字、文件屬性、工作表可見度、版面設定、AES 加密儲存以及基於串流的開啟/儲存

我可以從串流中儲存或開啟 XLSX 檔案嗎?

可以。XLSX 門面支援 SaveAs(Stream) 及 Open(Stream),適用於記憶體緩衝區、資料庫 BLOB 欄位、HTTP 回應等非檔案系統的儲存路徑

如何處理大批量的 XLSX 匯出?

請使用 XLSX 門面,並在按工作表逐一產生報表時啟用 Workbook.StreamingWrite。串流寫入能夠降低儲存期間活頁簿的記憶體開銷

HotXLS 可以開啟或儲存包含密碼加密的 XLSX 壓縮檔嗎?

只要提供非空密碼,TXLSXWorkbook.SaveAsEncrypted 即可寫入受 ECMA-376 AES 保護的 XLSX 容器。對於未加密的套件,OpenEncrypted 可回退至普通 Open,但在解密支援正式發布前,對於加密套件仍會引發 EXlsxEncryptionNotImplemented。工作表和活頁簿保護依然作為 Excel 風格的獨立鎖定功能存在

我能保留巨集嗎?

XLSX 門面可以在活頁簿中原封不動地保留 vbaProject.bin 載荷資料,並為了合法的 VBA 儲存提供一個已解析的、唯讀的 ParsedVBAProject 檢視。但它並不負責編譯或執行 VBA 程式碼

HotXLS 內部會計算公式嗎?

HotXLS 會將公式文字寫入儲存的活頁簿中,試算表軟體會在檔案開啟時重新計算這些儲存格。如果需要明確的行程內求值,經典 XLS 和 XLSX 門面均暴露了 Calculate 方法;當自訂或不受支援的工作表函數需要由應用程式碼處理時,請分配 OnUserFunction 事件

匯出、部署與授權

這裡的解答涉及輸出格式、部署期望,以及在發布應用程式前經常被問及的授權事宜

除 XLS 或 XLSX 外,HotXLS 還能匯出其他格式嗎?

可以。HotXLS 內建了 CSV、TSV、HTML 和 RTF 等格式的匯出輔助工具。請根據活頁簿的格式選擇相應的門面,並採用工作流所需的匯出方法

HotXLS 可用於服務程式或批次處理工具嗎?

可以。由於 HotXLS 並非透過自動化控制 Excel,它十分適合桌面應用、服務程式、批次工作、安裝程式以及 Office 自動化可能極其脆弱或完全不可用的伺服器端工具

是否存在執行期授權費用?

不存在。HotXLS 不需要繳納執行期版權費用。您只需為使用該程式庫建置應用程式的開發者購買開發者授權