Typed Table Extraction

THotPDF.ExtractLoadedTypedTables แปลงแถวตารางเชิงความหมายให้เป็น grid คอลัมน์ canonical แบบ public โดยไม่แก้ไขเอกสารที่โหลดมา

ความต่อเนื่องของตาราง

fragment ที่อยู่ติดกันและเข้ากันได้เพิ่มคอลัมน์ canonical ได้ ทำให้จุดเริ่มช่วงกลางที่หายไปกลายเป็นค่า ColumnSpan ที่ระบุชัด แทนที่จะทิ้ง heading ที่ merge ไว้

ตารางที่เข้ากันได้บนหน้าต่อเนื่องกันจะรวมเป็นตารางเดียว โดยแถว header หน้าแถวที่ตรงกันยังอยู่ครบและติด flag IsRepeatedHeader

ค่าแบบมีชนิดและความมั่นใจ

cell แต่ละตัวเก็บ Unicode text เดิม, ขอบเขตในหน้า, row span กับ column span, ค่าที่ normalize แล้ว, ค่าที่เก็บแบบมีชนิด, รหัสสกุลเงิน และความมั่นใจ

การอนุมานจำแนกค่าได้ทั้งแบบว่าง, string, integer, number, boolean, date, date-time, currency และ percentage ภายใต้กฎทศนิยม ตัวคั่นพัน และลำดับวันที่ที่ผู้เรียกเลือก

Export แบบมีขอบเขต

ExportLoadedTypedTables เขียนแถว CSV สไตล์ RFC 4180 แบบขยายแล้ว หรือ JSON ที่พก metadata ครบ ผ่าน staging stream แบบมีขอบเขตและการประกาศผลแบบ rollback-safe

ลิมิตทุกตัวทั้งหน้า, glyph, ตารางต้นทาง, ตาราง output, แถว, cell, text, output byte, ความมั่นใจ และการยกเลิก ถูกตรวจก่อนประกาศผลลัพธ์

เวิร์กบุ๊ก XLSX

ยูนิต HPDFXLSXExport export THPDFTypedTables เป็นเวิร์กบุ๊ก Office Open XML โดยไม่ต้องติดตั้ง Office หรือโหลดสเปรดชีตไลบรารีภายนอก

HPDFExportTypedTablesXLSX เขียนลง stream ที่อ่าน เขียน และ seek ได้จากตำแหน่งปัจจุบัน โดย stage เวิร์กบุ๊กทั้งหมดก่อนประกาศผล และคืน byte ที่ถูกเขียนทับเมื่อการเขียนล้มแบบกู้คืนได้

HPDFExportTypedTablesXLSXFile ใช้ไฟล์ชั่วคราวที่สร้างแบบ exclusive ข้างไฟล์เป้าหมาย flush มัน แล้วแทนที่ไฟล์เป้าหมายแบบ atomic หลัง export สำเร็จเท่านั้น

HPDFExportLoadedTypedTablesXLSX รวมการดึงตารางกับการ export ผ่าน stream และปฏิเสธปลายทางที่ชี้ไฟล์เดียวกับต้นฉบับที่โหลดไว้

ตารางที่ดึงได้แต่ละตัวกลายเป็นเวิร์กชีตชื่อ Table N พร้อม cell แบบตัวเลขกับ boolean, ฟอร์แมตวันที่และวันที่-เวลา, รหัสสกุลเงินใน number format, ฟอร์แมตเปอร์เซ็นต์ และช่วง merge ที่ผ่านการตรวจ

จำนวนเต็มที่มีทศนิยมเกิน 15 หลักถูกเก็บเป็นข้อความเพื่อรักษาค่าเดิมไว้ครบ เพราะ cell ตัวเลขของ Excel มีความละเอียดจำกัด

ข้อความยังเป็นข้อความจริง รวมถึงค่าที่ขึ้นต้นด้วย = และอักขระควบคุม XML กับลำดับ escape ของ Office Open XML แบบตรงตัวถูกคงไว้ผ่านการ escape แบบ SpreadsheetML

ตามค่าเริ่มต้น เวิร์กชีต Source metadata ที่ซ่อนอยู่จะบันทึกที่อยู่ cell ของเวิร์กบุ๊ก, ดัชนีหน้ากับตารางต้นทางแบบฐานศูนย์, ข้อความดิบกับที่ normalize แล้ว, ชนิดค่า, รหัสสกุลเงิน, ขอบเขตในหน้า และความมั่นใจของ cell ต้นทางทุกตัว

THPDFXLSXExportOptions.Default อนุญาตสูงสุด 4,096 ตาราง, 1,000,000 แถว, 1,000,000 cell และ 256 MiB ของผลลัพธ์ พร้อม THPDFCancellationToken แบบเลือกได้และตัวเลือกให้ข้ามเวิร์กชีต metadata

การ export ปฏิเสธ merge ที่ทับกัน, ดัชนีคอลัมน์ที่ไม่เรียงหรือซ้ำ, ตัวเลขที่ไม่จำกัด (non-finite), รหัสสกุลเงินที่ผิด, วันที่นอกช่วง 1900 ถึง 9999, ข้อความยาวเกิน 32,767 หน่วย UTF-16 และเวิร์กชีตที่เกินลิมิต 1,048,576 แถวหรือ 16,384 คอลัมน์ของ Excel

ชีต metadata มีแถวหัวตารางแถวเดียว การเปิดใช้จึงจำกัด cell ต้นทางเพิ่มที่ 1,048,575 ตัวทั้งเวิร์กบุ๊ก การดึงที่ว่างเปล่าก็ยังได้หนึ่งชีตที่มองเห็น

สมาชิก ZIP ใช้วิธีบีบอัดแบบ stored ขนาดผลลัพธ์จึงอาจใหญ่กว่าเวิร์กบุ๊กแบบบีบอัด ตัว export ไม่คงสไตล์ภาพของ PDF และไม่รวม chart, formula, macro หรือภาพที่ฝังไว้

งาน JSON และ C ABI เปิดเผยไปป์ไลน์เวิร์กบุ๊กชุดเดิมผ่าน tables.export ด้วย format: "xlsx" และงบประมาณการดึงกับผลลัพธ์ที่ใช้ร่วมกัน

API ที่เกี่ยวข้อง