具型別表格擷取
THotPDF.ExtractLoadedTypedTables 把語意化的表格列轉成公開的規範化欄位網格,過程中不修改已載入的文件
表格連續性
相鄰且相容的片段可以追加規範化欄位,把缺失的中間起始欄變成明確的 ColumnSpan 值,而不是丟棄合併的表頭
連續頁面上相容的表格會合併為一個表格,且相符的開頭標題列仍然保留並標記 IsRepeatedHeader
具型別值與信心度
每個儲存格都保留原始 Unicode 文字、頁面空間邊界、列與欄跨度、正規化值、具型別儲存、貨幣代碼與信心度
推斷機制在呼叫端選定的小數、千位與日期順序規則下,可辨識空值、字串、整數、數值、布林、日期、日期時間、貨幣與百分比
有界匯出
ExportLoadedTypedTables 透過有界的暫存串流與可安全回滾的最終發布,寫出展開的 RFC 4180 風格 CSV 列或帶有豐富中繼資料的 JSON
頁面、字形、來源表格、輸出表格、列、儲存格、文字、輸出位元組、信心度與取消等限制,都會在發布結果之前檢查
XLSX 活頁簿
HPDFXLSXExport 單元把 THPDFTypedTables 匯出為 Office Open XML 活頁簿,不必安裝 Office,也不用載入外部試算表程式庫
HPDFExportTypedTablesXLSX 寫入可讀、可寫、可 seek 的串流目前位置,先暫存完整活頁簿再發布,遇到可復原的寫入失敗會還原被覆寫的位元組
HPDFExportTypedTablesXLSXFile 在目標旁建立獨佔的暫存檔,flush 之後只有在匯出成功時才原子替換目標
HPDFExportLoadedTypedTablesXLSX 把擷取與串流匯出合在一起,並拒絕別名指向已載入來源的目的地
每個擷取的表格變成一張名為 Table N 的工作表,含數值與布林儲存格、日期與日期時間格式、數字格式中的貨幣代碼、百分比格式,以及經驗證的合併範圍
超過 15 位十進位數的整數會以文字儲存以保留精確值,因為 Excel 數值儲存格的精度有限
字串維持為字面文字,包括以 = 開頭的值,而 XML 控制字元與字面上的 Office Open XML 跳脫序列會透過 SpreadsheetML 跳脫保留
預設會有一張隱藏的 Source metadata 工作表,為每個來源儲存格記錄活頁簿儲存格位址、零基的來源頁面與表格索引、原始與正規化文字、值種類、貨幣代碼、頁面空間邊界與信心度
THPDFXLSXExportOptions.Default 允許最多 4,096 個表格、1,000,000 列、1,000,000 個儲存格與 256 MiB 輸出,並可選用 THPDFCancellationToken 與省略中繼資料工作表的選項
匯出會拒絕重疊的合併、無序或重複的欄索引、非有限數值、無效的貨幣代碼、1900 到 9999 以外的日期、超過 32,767 個 UTF-16 單元的文字,以及超出 Excel 1,048,576 列或 16,384 欄限制的工作表
中繼資料工作表有一列表頭,啟用它會把整個活頁簿的來源儲存格上限再加一道 1,048,575 的限制;空的擷取結果仍會產生一張可見工作表
ZIP 成員使用 stored 壓縮方法,輸出大小因此可能比壓縮過的活頁簿大;匯出器不保留 PDF 視覺樣式,也不處理圖表、公式、巨集或內嵌影像
JSON 工作與 C ABI 透過 tables.export 加上 format: "xlsx" 暴露同一條活頁簿管線,並共用擷取與輸出預算