ไลบรารี Excel สำหรับ RAD Studio

อ่าน เขียน จัดรูปแบบ และส่งออกสมุดงาน Excel โดยไม่ต้องใช้ Office automation

HotXLS เป็นไลบรารี Object Pascal แบบเนทีฟสำหรับแอปพลิเคชัน Delphi และ C++Builder จัดการทั้งเวิร์กโฟลว์ XLS แบบคลาสสิกและ facade XLSX ปัจจุบันได้โดยตรง พร้อม API ระดับสมุดงาน การแก้ไขแผ่นงาน การจัดรูปแบบที่หลากหลาย ตัวช่วยส่งออก ดีโม และเอกสารประกอบออฟไลน์ในแพ็กเกจเดียว

ภาพรวมสมุดงานXLS + XLSX
ค่า
สไตล์
ส่งออก
ตัวเลข
เส้นขอบ
CSV
วันที่
สีของธีม
HTML
สูตร
การตรวจสอบความถูกต้อง
RTF

ภาพรวมความสามารถปัจจุบัน

สายผลิตภัณฑ์ HotXLS ปัจจุบันรวมส่วนหน้า XLS ดั้งเดิมเข้ากับเอนจิน XLSX เฉพาะทาง โค้ดเดิมจึงยังใช้ API แบบคลาสสิกต่อไปได้ ในขณะที่โปรเจ็กต์ใหม่เล็งไปที่ฟีเจอร์ OOXML ได้ตรง ๆ

I/O สมุดงานแบบเนทีฟ

สร้าง เปิด แก้ไข และบันทึกสมุดงาน Excel ได้โดยตรงจากโค้ด Delphi หรือ C++Builder ไม่ต้องติดตั้ง Microsoft Excel ไม่ต้องพึ่ง COM automation และไม่ต้องมีโปรเซสสเปรดชีตภายนอก

บันทึก XLTX template แบบไม่มี macro ด้วย SaveAs(FileName, xlsxOpenXMLTemplate) หรือ stream overload ที่ตรงกัน รวมถึงเอาต์พุตแบบ streaming ด้วย ส่วนรูปแบบการบันทึก default ยังคงเดิม

facade XLS แบบคลาสสิก

API ที่โตมากับงานสำหรับสมุดงาน Excel 97-2003 (.xls) ครอบคลุม object model แบบคลาสสิกครบทุกส่วนด้วย round-trip BIFF8 ความเที่ยงสูง และอ่านไฟล์ Excel 2.0/3.0/4.0 (BIFF2-4) เก่าเพื่อเอาค่ามาใช้

  • ช่วงเอาต์พุตสูตรแบบมีดัชนีช่วยตัดการสแกนแถวก่อนหน้าซ้ำ ๆ ตอนสร้าง dependency graph ใหญ่ขึ้นใหม่ รวมถึง reference ไปยังเอาต์พุตแบบ array และ dependency ที่ไล่ข้ามแผ่นงาน
  • การบันทึก XLS แบบคลาสสิกคงแคชสูตรที่โหลดมาหรือคำนวณแล้วไว้ รวมถึง root ของ shared และ array formula แคชที่ไม่มีจะคง fallback ฝั่งการคำนวณไว้ ส่วน Recalculate แบบชัดเจนจะ refresh ค่าที่มีอยู่
  • reference ของ defined name แบบ scalar จะ intersect ช่วงแถวเดียวหรือคอลัมน์เดียวที่เซลล์สูตร ขณะที่ argument ช่วงแบบ aggregate และ lookup ยังใช้ช่วงเต็มไว้ การ recalculate เลี่ยงวงจรช่วงหลอก ๆ ให้ความสำคัญกับ lookup cache ที่ finalize แล้วเป็นลำดับแรก และคง precision แบบ floating-point ในเลขคณิตที่ผสม integer กับ floating-point
  • การ round-trip ของ XLSX คงสูตร print area แบบ dynamic, range union แบบ qualified และดัชนีฟอนต์ฟอเนติกที่ต้องมีค่าเป็นศูนย์ไว้ part ที่สร้างใหม่และที่เก็บรักษาไว้แชร์การประกาศ content-type ที่ไม่ซ้ำกัน ขณะที่ custom property และ relationship ระดับ root แบบทึบยังคง relationship ID ของตัวเองแยกจากกัน
  • XLS แบบคลาสสิกจะยังถือว่าระเบียน margin ที่ import มาไม่มีอยู่ต่อไป จนกว่าจะกำหนด margin นั้นแบบชัดเจน โดยไม่เปลี่ยนเอาต์พุต margin เริ่มต้นของสมุดงานใหม่
  • AGGREGATE จัดการ error ที่ยังไม่ถูกแคชกับการเลือกแบบซ้อนแยกจากกันอย่างอิสระ โดยแยก semantics ระหว่างแบบ reference กับแบบ computed array สำหรับ option 0 ถึง 7
  • การ round-trip ของ XLSX คง chart XML และ offset ของ chart anchor ที่ไม่ถูกแก้ไข, ชื่อฟอนต์ ขนาด และ scheme ของ conditional format, flag สไตล์กับสี RGB แบบชัดเจน และแนวหน้ากระดาษที่ยังไม่ระบุเมื่อมีการกำหนดแค่ margin
  • Object model ครบวงจร: สมุดงาน แผ่นงาน ช่วง สูตร การจัดรูปแบบ รูปภาพ ไฮเปอร์ลิงก์ defined name การป้องกัน การตั้งค่าหน้ากระดาษ และการส่งออกรายงาน
  • ข้อมูลเมตาคอลัมน์แบบคลาสสิกเปิดเผย outline collapse marker แยกจากสถานะซ่อนและระดับการจัดกลุ่ม และคงไว้ผ่านการ round-trip XLS แบบดิบ การคัดลอกรูปแบบคอลัมน์ และการคัดลอกแผ่นงาน
  • การตั้งค่าหน้ากระดาษแบบคลาสสิกเปิดเผย HasSetupRecord และ PrinterSettingsInitializedเก็บระเบียน BIFF Setup ที่ไม่ได้แตะไว้แบบ byte ต่อ byte ระเบียนที่ไม่มีอยู่ก็ปล่อยให้ไม่มีต่อ และจะ initialize ฟิลด์ที่ขึ้นกับเครื่องพิมพ์เฉพาะเมื่อ setter ของมันเรียกใช้เท่านั้น
  • การแปลง XLS เป็น XLSX และ XLSX เป็น XLS ย้ายการตั้งค่าหน้ากระดาษแบบมีชนิดและไบต์ไดรเวอร์เครื่องพิมพ์แบบทึบไปพร้อมกันอย่างอิสระจากกัน ให้ฟิลด์มาตรฐานมีอำนาจเหนือค่าเริ่มต้นส่วนตัวที่ซ้ำซ้อน และปฏิเสธการตั้งค่า BIFF8 ที่แทนค่าในปลายทางไม่ได้ก่อนเขียน
  • สมุดงานแบบคลาสสิกและ XLSX เปิดเผยนโยบาย SaveExternalLinkValues และ UpdateLinks ที่ตรงกัน ค่าแบบ cached ของสมุดงานภายนอกข้ามได้โดยไม่ต้องลบนิยามลิงก์หรือแคชในหน่วยความจำ การประกาศแหล่งที่ยังไม่ถูกแตะคงสภาพ lossless การแปลงข้ามรูปแบบคงค่านโยบายที่ถูกต้อง และค่ากำหนดการอัปเดตไม่เคยริเริ่มการเข้าถึงไฟล์หรือเครือข่ายเอง
  • สมุดงาน XLSX ตรวจจับ นับ และลบ task pane ของ Web Add-in แบบ atomic ได้แม่นยำ การลบจะตรวจสอบ closure ของ relationship ภายในที่มีขอบเขตก่อนแก้ไข คงส่วนที่ถูกแชร์กับ relationship อื่น ลบ relationship part ที่เป็นเจ้าของและ entry content-type ที่ค้าง กันการฟื้นคืนจากสำเนาต้นทางแบบ compressed และทำซ้ำได้ผลเดิม ส่วน XLS แบบคลาสสิกและ ODS รายงานว่าไม่รองรับโดยไม่สแกนแพ็กเกจ
  • แผ่นงานแบบคลาสสิกและ XLSX เปิดเผยวิธีเลือกที่รู้จักบานหน้าต่างและวิธีเลื่อนแบบ 1-based ที่ตรงกันผ่าน TXLSPanePosition; TryGetWindowScroll และ ScrollWindow แม็พแกนบน ล่าง ซ้าย ขวาที่แชร์กันเข้าสู่ view state สองระดับของแต่ละรูปแบบ คงไว้ผ่านการบันทึก เปิด และคัดลอกแผ่นงาน และปฏิเสธบานหน้าต่างที่หายหรือพิกัดไม่ถูกต้องแบบ atomic สแนปชอตการเลือกยังเรียงได้ ทับซ้อนได้ และเป็นของผู้เรียก การแก้ไขเชิงโครงสร้างทั้งแถวหรือทั้งคอลัมน์จะ remap ทุกบานหน้าต่างโดยคงเอกลักษณ์ของ active area ด้วย survivor และ fallback เซลล์ขอบเขตที่กำหนดได้ และการทำงานกับพื้นที่ใหญ่ยังคง linear แบบ amortized ฝั่ง XLS คลาสสิกยังรวมระเบียนการเลือกที่ต่อเนื่องกัน คงร่างระเบียนที่ไม่ถูกแตะหรือไม่ถูกต้อง รายงานกลุ่มที่เสียรูปผ่าน xlsDiagnosticSelectionRecordInvalidและแบ่ง selection ที่ใหญ่กว่า 1369 areas เป็นชิ้น ๆ
  • ยูนิต lxOutline ที่เป็นกลางต่อเอนจิน สร้างเรขาคณิต outline แถวหรือคอลัมน์จาก span แบบ sparse ที่เรียงแล้ว ค้นหาโหนด summary-before / summary-after ในเวลา O(log n + k) และสร้างแผนแบบ compressed ที่ทำซ้ำได้ (idempotent) สำหรับการยุบโหนด เปลี่ยนระดับการแสดงผล คงลูกที่ซ้อนอยู่ และอัปเดตสถานะลูกแบบ recursive โดยไม่ต้องสแกนพิกัดแผ่นงานที่ไม่ได้ใช้ ทั้งสองเอนจินแผ่นงานเปิดเผยวิธี query และควบคุมโหนดชุดเดียวกัน ส่วน OpenDocument groups คงสถานะการแสดงผลเดิมและแปลงเป็น marker โหนดสรุปของ XLSX
  • สมุดงานแบบคลาสสิกและ XLSX เปิดเผยสัญญา ResolveIndexedColor ที่ไร้ผลข้างเคียงและเหมือนกันสำหรับดัชนีสีสาธารณะ ค่า BIFF icv และสี indexed ของ OOXML token palette, automatic, system และ invalid ยังแยกจากกัน ดัชนีเส้นขอบศูนย์คงความหมาย unspecified เดิม เอาต์พุต ARGB ถูก normalize และสีของระบบปฏิบัติการจะ resolve ผ่าน callback ที่ผู้เรียกกำหนดอย่างชัดเจนเท่านั้น
  • ทั้งสองเอนจินสมุดงานเปิดเผย query NearestIndexedColor ที่ deterministic และไร้ผลข้างเคียง โดยมีแคช OKLab ที่รู้เรื่องการ mutate คอยหลังบ้าน ค้นเฉพาะ 56 entry palette กายภาพของ BIFF คืนดัชนีสาธารณะและกายภาพพร้อมข้อมูลระยะห่างและการตรงเป๊ะ ปฏิเสธ alpha บางส่วน และกรณีเสมอกันเลือกดัชนีสาธารณะต่ำสุด
  • ทั้งสองเอนจินสมุดงานเปิดเผย ScanIndexedColorUsage แบบ deterministic ไร้ผลข้างเคียง เพื่อทำ inventory สล็อต palette กายภาพทั้ง 56 ช่อง รวมค่า ARGB ที่ normalize แล้ว จำนวนนิยามและการอ้างอิง ชนิดผู้ใช้ และล็อกการเก็บรักษา ครอบคลุมสไตล์ เซลล์ sparse อ็อบเจ็กต์แผ่นงาน แผนภูมิ คอมเมนต์ และ conditional format โดยไม่ต้อง materialize เซลล์ที่ไม่ได้ใช้
  • ทั้งสองเอนจินสมุดงานเปิดเผย preview BuildBiffPalettePlan ที่ไม่ mutate อะไร ปกป้องผู้ใช้สี indexed รวมสีธีมตรงและสีที่ resolve แล้วตามความถี่ที่เรนเดอร์ออกมา คงคู่ที่ตรงเป๊ะที่มีอยู่ แม็พสีแบบ deterministic ผ่าน OKLab และรายงานเอกลักษณ์แหล่งที่มา การเปลี่ยนสล็อต ความครอบคลุมเป๊ะ ข้อผิดพลาดถ่วงน้ำหนัก และการ quantize ที่ล้น โดยไม่แตะสมุดงานหรือพฤติกรรมการบันทึก
  • ทั้งสองเอนจินสมุดงาน validate และ apply แผน 56 สล็อตปัจจุบันแบบ atomic ผ่าน ApplyBiffPalettePlanปฏิเสธอินพุตที่เก่าหรือถูกแก้ไขก่อน mutate อะไร และ rebuild ตัวจับคู่เชิงการรับรู้เพียงครั้งเดียว สมุดงานแบบคลาสสิกยังมี BiffPaletteSavePolicy แบบชัดเจนที่ค่าเริ่มต้นคงเอาต์พุตเดิมไว้ โหมด optimize ใช้กับ BIFF8 เท่านั้น และการบันทึกที่ล้มเหลวหรือถูกยกเลิกจะคืน palette เดิม
  • ทั้งสองเอนจินสมุดงานเปิดเผยค่า TXLSRenderCalibration ที่ผ่านการ validate ครอบคลุมความกว้าง ความสูง ระยะห่างหลายบรรทัด margin เซลล์ สเกลหน้าจอ และ DPI ของการวัด การ assign เป็น atomic การ capture คืนสแนปชอต operation ที่เป็นอิสระ ค่าเริ่มต้น deterministic และค่า runtime นี้ไม่เคยถูก serialize หรือถูกใช้ย่อขยายเรขาคณิตของแผ่นงานด้วยตัวมันเอง
  • ทั้งสองเอนจินสมุดงานสร้างบริการ IXLSRenderGeometry ที่เป็นของ operation โดย calibration ที่เปลี่ยนแปลงไม่ได้ generation ของสมุดงาน backend ลายเซ็นฟอนต์เต็ม ความกว้าง wrap และข้อความ รวมกันเป็นเอกลักษณ์แคชเมตริกแบบมีขอบเขตระดับ local การวัด GDI ที่แชร์กันและการแปลง pixel จุด ความกว้างคอลัมน์ MDW และความกว้างเซลล์ที่ใช้ได้ ช่วยกำจัดแคช DPI และ base-width ระดับ process ของ AutoFit พร้อมคง screen scaling ให้ห่างจากการสเกลพิกัดเอาต์พุต
  • AutoFit แบบคลาสสิกและ XLSX capture สแนปชอต render geometry หนึ่งชุดต่อ operation และใช้การวัดฟอนต์ การ wrap ระยะบรรทัด และ margin เซลล์ที่ผ่านการ calibrate ฝั่ง pagination capture เรขาคณิตระดับสมุดงานชุดเดียวกันต่อ build ขนาดหน้าเริ่มต้นจึงคงที่ การเปลี่ยน calibration ภายหลังต้อง rebuild อย่างชัดเจน และการคำนวณหน้าไม่เขียนทับความสูงแถวหรือความกว้างคอลัมน์ที่เก็บไว้
  • pagination ของ PDF, SVG, bitmap, print preview และ workbook viewer ระบุ render backend ของตัวเองและคง calibration ของสมุดงานแบบเปลี่ยนแปลงไม่ได้ตลอด operation การ fit ข้อความหน้าที่แชร์กันและการ wrap SVG ใช้แคชเมตริกแบบมีขอบเขตระดับ operation ที่มีสไตล์ฟอนต์และเอกลักษณ์ charset ครบ แทนอ็อบเจ็กต์วัดระดับ process
  • TDataToXLS เลือกเอาเฉพาะฟิลด์ที่ต้องการหรือตัดฟิลด์ที่ละเอียดอ่อนออกได้ โดยยังคง header แถวข้อมูล callback และความกว้างคอลัมน์ให้ตรงกัน
  • การคำนวณสูตรในตัว พร้อม registry ฟังก์ชันผู้ใช้ระดับ process และระดับสมุดงาน ความหมาย override ของ local-name การเรียก handler แบบ lock-free, callback OnUserFunction และ OnUserFunctionEx รวมถึงฟังก์ชันข้อความ วันที่ workday วิศวกรรม/แปลงเลขฐาน bitwise สถิติ aggregate คณิตศาสตร์ และ dynamic array ที่ใช้กันทั่วไปของ Excel ซึ่งมี broadcast array operator พร้อม error ต่อเซลล์ เมทริกซ์ LINEST / LOGEST หลายตัวแปรแบบครบสูตร ผลทำนาย TREND / GROWTH แบบมีรูปทรง SORTแถวหรือคอลัมน์ที่ stable, SORTBY แถวหรือคอลัมน์หลายคีย์ที่ stable พร้อมทิศทางอิสระและคีย์แบบ array, CEILING.MATH / FLOOR.MATH ที่รู้เรื่อง array พร้อม singleton broadcasting และ error เฉพาะที่, การประเมิน COT / ACOT / COTH / ACOTH / CSC / CSCH / SEC / SECH แบบ array ที่ stable มี error เฉพาะที่และกิ่งกัน overflow สำหรับอินพุตใหญ่, COMBINA / PERMUTATIONA ที่เช็ก overflow, เมทริกซ์เอกลักษณ์ MUNIT ที่จำกัดหน่วยความจำ, แปลง UNICHAR แบบ Unicode scalar, ข้อความสกุลเงินไทยผ่าน BAHTTEXT, ISFORMULA ที่คงการอ้างอิงโดยไม่ recalculate เป้าหมาย, UNIQUEแถว/คอลัมน์ด้วย hash index, ผล FREQUENCY แบบ spill, XMATCH / XLOOKUPแบบไบนารีลอการิทึม, ตรวจจับ optional argument ด้วย ISOMITTED , แปลง array ด้วย ARRAYTOTEXT / VALUETOTEXT , XIRR / XNPV ที่ผ่านการ validate, อัตราการเติบโตและจังหวะการลงทุน PDURATION / RRI , ค่าเสื่อมราคา VDB แบบเศษงวด บวก binding LET ครบและ closure LAMBDA ที่เรียกผ่าน defined name และ capture เชิงศัพท์ภายใน LET
  • ยูนิต EvaluateFormulaAt ที่เป็นกลางต่อเอนจิน ประเมินข้อความสูตร A1 หรือ R1C1 ภายใต้บริบทเซลล์ของแผ่นงานที่ระบุชัด โดยไม่ mutate โมเดลเซลล์ แคช dirty state แผ่นงาน active หรือกราฟ dependency ผลแบบมีชนิดคง formula error, array, ค่าว่าง, volatility, การยกเลิก, การอนุญาต external reference และหมวดความล้มเหลวที่ stable ส่วน IXLSFormulaEvaluationTemplate ใช้ compiled anchor ที่เปลี่ยนแปลงไม่ได้ซ้ำข้ามเซลล์เป้าหมาย ภายใต้งบความยาวสูตร จำนวน step, recursion และหน่วยความจำ array ที่ตั้งค่าได้
  • XLS คลาสสิกและ XLSX เปิดเผยวิธี ValidateFormulaEntry ที่ไม่ mutate และตรงกัน, FormulaEntryPolicyระดับสมุดงาน และการสแกน AuditFormulaSymbols แบบ parse แล้วครอบคลุมเซลล์และ defined name อินพุตว่างเป๊ะ สูตรที่คืนสตริงว่าง ฟังก์ชันไม่รู้จัก ชื่อไม่รู้จัก syntax ล้มเหลว เป้าหมายไม่ถูกต้อง และข้อจำกัดของรูปแบบเป้าหมาย ยังแยกกันชัดเจน การ assign สูตรปกติ apply โหมดปฏิเสธเข้มหรือโหมดคงไว้แบบ atomic สัญลักษณ์ไม่รู้จักที่คงไว้จะประเมินและแพร่เป็น #NAME?การเปลี่ยน UDF หรือ defined name ทำให้ dependency ที่เก่า invalidate ฝั่งคลาสสิก BIFF เก็บคำเรียกที่คงไว้เป็น add-in user function การ validate จำได้ทั้ง user function แบบลงทะเบียนหรือ callback, lambda เชิงศัพท์และ defined name, report placeholder, external link ที่ลงทะเบียน และ structured reference ที่ถูกต้อง โดยไม่เรียก handler ส่วน callback ฟังก์ชันแบบ external หรือ macro ที่อันตรายยังถูก block ก่อนประเมิน argument เว้นแต่ได้รับอนุญาตชัดเจน
  • การตรวจ token สูตรแบบ lossless และการ mutate แบบมีเกราะป้องกันสำหรับทั้งสองเอนจินสมุดงาน ผ่าน TXLSFormulaTokenStream, ParseFormulaTokens, GetFormulaTokens, FormulaTokensToTextและ SetFormulaTokensพร้อม stream ที่เป็นของผู้เรียก, token projection แบบอ่านอย่างเดียว, payload BIFF ดิบ, reference flag อิสระ, cloning, การแทนที่ reference แบบ atomic, context provenance และการ validate ก่อน writeback
  • ตาราง What-If แบบ one-variable แนวแถว one-variable แนวคอลัมน์ และ two-variable ที่ recalculate dependency แบบแยกเดี่ยว รองรับ error ของ input ที่ถูกลบ การแก้ไขเชิงโครงสร้าง การคัดลอกแผ่นงาน และ round-trip BIFF8
  • สแกนเซลล์ ค้นหา/แทนที่ตาม template, เติมช่วงด้วย callback, เขียน typed array โดยตรงผ่าน ForEachCell, FindText, ReplaceText, WriteCellsและวิธีเขียนแถว/คอลัมน์แบบตัวเลข สตริง และ variant บวก ConvertFormulasToValues ทั้งแผ่นหรือรายเซลล์ ที่แช่แข็งสูตรเป็นผลที่คำนวณแล้วโดยยังเก็บค่า cached ไว้
  • การตรวจ formula cache ที่เป็นกลางต่อเอนจินผ่าน IXLSFormulaCacheReader และ CreateFormulaCacheReader ของแต่ละเอนจิน รายงานการมีอยู่ ที่มาแบบ loaded/calculated และชนิด blank, number, date-time, string, Boolean หรือ error โดยไม่ประเมินสูตร เรียก user function ถอดรหัส token หรือเปลี่ยนสถานะสมุดงาน lease ตลอดอายุทำให้ reader invalidate อย่างปลอดภัยหลังสมุดงานถูกทำลาย สมาชิก shared-formula คงแคชเป็นของตัวเอง และ XLSX/ODS คง typed error กับแคชว่างแบบชัดเจนข้ามการเปิดใหม่
  • Classic IXLSWorkbook.CreateReadOnlyView ฝั่งคลาสสิกและ IXLSXWorkbookOwner.CreateReadOnlyView ฝั่ง XLSX สร้าง IXLSReadOnlyWorkbookView ที่แชร์โมเดลแบบ constant-time พร้อมแผ่นงาน active เฉพาะ view, สแนปชอตเซลล์ที่เก็บไว้แบบ by-value, ไม่เปิดเผยอ็อบเจ็กต์ที่เขียนได้, ค่าสูตร cached เป็นค่าเริ่มต้น และเลือกเปิดข้อความสูตรหรือการประเมินสูตรแบบแยกเดี่ยวได้ view ขนานกันเก็บ recursion state แคช scalar/array และสูตร compiled ของ XLSX ไว้เป็นส่วนตัว การประเมิน external ของ XLSX อ่านเฉพาะ link cache ในไฟล์เดียวกัน packed cells ยังไม่ถูก materialize และทุก view ถือ read lease ที่ปฏิเสธการเขียนโมเดลก่อน mutate
  • TXLSWorkbookWorkspace รับ adapter แบบถอนได้ของ XLS คลาสสิก XLSX หรือ ODS จาก CreateWorkspaceWorkbookของแต่ละเอนจิน คงเอกลักษณ์ path หรือ IRI ครบถ้วน resolve external worksheet ด้วยชื่อก่อนตำแหน่ง และประเมินสูตร external ผ่านการลงทะเบียนที่ยังมีชีวิตอย่างชัดเจน loader ต่อ identity หนึ่งครั้งที่ผู้เรียกควบคุมได้ แคชไฟล์แบบมีชนิด และ #REF!คำขอโหลดขนานแชร์ผลเดียวกัน diagnostics แบบมีชนิดเปิดเผยความล้มเหลวและขีดจำกัดทรัพยากร วิธีลงทะเบียนเพื่อความเข้ากันได้ยังใช้ได้ทั้งสอง facade เป้าหมายที่ถูกทำลาย disconnect อย่างปลอดภัย และการ recalculate ไม่เปิดไฟล์หรือทรัพยากรเครือข่ายเองเด็ดขาด
  • TXLSWorkbookWorkspace.BuildDependencyGraph สกัดกราฟสูตรข้ามสมุดงานหนึ่งชุดจากโมเดล XLS คลาสสิก XLSX และ ODS ที่ลงทะเบียนไว้ เก็บเอกลักษณ์สมุดงานและแผ่นงานเต็มรูป คง defined name ท้องถิ่นและ external แบบสัญลักษณ์ resolve ชื่อท้องถิ่นเป็น dependency จริงเมื่อทำได้ และเก็บช่วงสี่เหลี่ยมใหญ่เป็น interval กระชับ tree ของ row-interval เร่นการสร้าง edge และการค้น dependent และการสร้างกราฟอ่าน storage แบบ packed ของ XLSX โดยไม่ต้อง materialize
  • TXLSWorkbookWorkspace.Recalculate คงกราฟ dependency ที่แชร์ไว้และทำ dirty แบบเพิ่มเติม จัดคิวโหนดสูตร acyclic ตามลำดับ topological ข้ามสมุดงาน ปฏิเสธเฉพาะวงจรสูตรจริง ๆ ที่ strongly connected โดยไม่ปฏิเสธลิงก์สมุดงานสองทางที่ไม่เป็นอันตราย และแชร์แคช external cell ระดับ pass พร้อม diagnostics hit / miss / invalidation / โหนดถูกบล็อกที่ชัดเจน คำเรียกใน workspace เดียวกันถูก serialize การลบระหว่าง pass คืนสถานะ workspace เปลี่ยนแปลงผ่านสแนปชอต adapter ที่ปลอดภัย การทำลายรอการคำนวณที่กำลังทำอยู่ และโหนดที่ล้มเหลวยังคง dirty เพื่อ retry อย่างชัดเจน
  • CalculateAndVerify เทียบผลสูตรที่เก็บไว้กับการคำนวณสดที่ไม่มี volatile และรายงาน diagnostics ระดับแผ่นงาน เซลล์ สูตร ค่าที่คาด และค่าจริง โดยไม่แทนที่แคช RecalcAndVerifyEx เพิ่มการ audit เชิงลึกด้วย overlay ผลกราฟ dependency แบบแยกเดี่ยว หมวดความล้มเหลวแบบมีชนิดพร้อม call stack ที่จำกัด การยกเลิกความคืบหน้า และเลือก apply ค่าที่คำนวณใหม่แบบ atomic ได้
  • tolerance ของการ audit เชิงลึกจะกรองรายงานความไม่ตรงกันโดยไม่กดผลลัพธ์ระหว่างทางที่สด ๆ ทิ้ง สูตรที่ขึ้นต่อกันจะใช้ค่าที่ผ่านการ audit และการ apply แบบชัดเจนจะ refresh แคชที่เปลี่ยนไปแม้ไม่มีความไม่ตรงกันถูกรายงานเลย ส่วน tolerance แบบ absolute และ relative ใช้ได้ทั้งคู่กับผลลัพธ์ double-precision
  • การ recalculate แบบคลาสสิกใช้กราฟ dependency ที่สร้างแบบ lazy แพร่ input ที่ dirty เฉพาะไปยัง dependant แบบ transitive ประเมินสูตร volatile ใหม่ทุก pass ประเมินสูตร acyclic ตามลำดับ dependency และใช้การ iterate strongly connected component กับ circular reference การปิด full precision จะปัดแคชสูตรและตาราง What-If เป็นความแม่นยำตัวเลขตามที่แสดงก่อน dependant จะนำไปใช้
  • AutoFilter, การตรวจสอบความถูกต้องของข้อมูลแบบรายการ, ตาราง Excel ที่จัดวางแบบไม่มีแถว header พร้อมคอมเมนต์ต่อตารางและการประเมิน structured reference (Table[Col], column spans, [#Data] / [#All] / [#Headers] / [#Totals]), ส่วนขยาย conditional format (data bar พร้อมเติมสีและเส้นขอบค่าลบ, color scale, icon set) ที่กำหนด priority ไม่ซ้ำต่อแผ่นตอนบันทึก และกฎที่ scope ไว้ที่ PivotTable ถูกส่งไป bucket ส่วนขยาย Excel 2010+ รวมถึงแผ่นงานแผนภูมิ
  • กล่องข้อความ, ภาพวาด OfficeArt, การนำเข้า pivot แบบมีชนิดที่ขับเคลื่อนด้วย relationship, การ materialize ค่าหลายค่าแบบกรองและจัดกลุ่ม, calculated field, item และ member, subtotal, grand total, การเรียงแบบ stable, การคำนวณ ShowDataAs ทั้งแบบคลาสสิกและ extended รวมถึงคอมเมนต์ rich text
  • Round-trip BIFF8 ความเที่ยงสูงที่คงระเบียนที่ Excel เขียน สี RGB และสีธีมเป๊ะ ๆ custom view และข้อมูลเมตาของการแชร์ / การแก้ไขร่วมกัน
  • สมุดงานที่ป้องกันด้วยรหัสผ่านผ่านการเข้ารหัส BIFF8 RC4 บวกการบันทึก/โหลด XLSX แบบเข้ารหัส Agile พร้อม HMAC ตรวจความถูกต้องของข้อมูลเหนือแพ็กเกจที่เข้ารหัส และ write reservation แบบคลาสสิก (SetModifyPassword) ที่พก flag แนะนำ read-only, hash รหัสผ่าน และชื่อผู้จองไว้
  • AutoFit ช่วงที่ผสาน overload มอบการเติบโตแถว/คอลัมน์ที่ต้องการให้สมาชิกแรก สมาชิกสุดท้าย หรือกระจายเท่า ๆ กันทั้ง span ที่ผสาน โดยคงสถานะซ่อนและเคารพขอบเขตของแต่ละสมาชิก
  • การคัดลอกแผ่นงานข้ามสมุดงาน (TXLSWorksheets.AddCopy) ที่โคลนค่าเซลล์ สูตร (recompile กับชื่อแผ่นของปลายทาง) รูปแบบพร้อม RGB / สีธีมเป๊ะ เซลล์ที่ผสาน คอมเมนต์ ไฮเปอร์ลิงก์ layout แถว/คอลัมน์ frozen pane การป้องกัน การตั้งค่าหน้ากระดาษ สีแท็บ conditional format data validation เกณฑ์ AutoFilter ตาราง รูปฝังตัว rich-text run (ย้ายฟอนต์แบบ by value) และแผ่นงานแผนภูมิ (recompile series reference กับปลายทาง) ไปยังอีกสมุดงานหนึ่ง สูตรที่อ้างแผ่นที่ปลายทางไม่มี จะชี้กลับไปที่สมุดงานต้นทางเป็น external link เมื่อต้นทางมีเอกลักษณ์ของไฟล์

facade XLSX สมัยใหม่

เอนจิน OOXML เฉพาะทางที่สร้างรอบ TXLSXWorkbook สำหรับสมุดงาน Excel 2007+ (.xlsx)

  • Shared strings, สไตล์, ภาพวาด, คุณสมบัติของแผ่นงาน, การแพ็ก ZIP/XML และข้อมูลเมตาแบบ round-trip รวมถึงการจัดการ Xstring ของ SpreadsheetML ที่รู้เรื่องฟิลด์ ซึ่งคงอักขระควบคุมและ token literal _xHHHH_ ไว้โดยไม่แตะ syntax ของสูตร
  • การตั้งค่าหน้ากระดาษของแผ่นงานคงไบนารี printer settings แบบ byte-exact ไว้ผ่าน relationship pageSetup และ part printerSettingsN.bin ต่อแผ่น รับตำแหน่ง part ต้นทางที่ไม่เป็นมาตรฐาน เขียนปลายทางแบบ canonical ที่คาดเดาได้ คัดลอก payload แบบ deep ข้ามการคัดลอกแผ่นงานในสมุดงานเดียวกันและข้ามสมุดงาน และรายงาน relationship เครื่องพิมพ์ที่หาย ชนิดผิด หรือค้าง โดยไม่ผูกกับ part ไบนารีที่ไม่เกี่ยวข้อง
  • ตัวเขียนแถว/คอลัมน์แบบ numeric, string และ variant ขยายความจุเซลล์แบบเรขาคณิตข้าม batch ที่เขียนซ้ำ เติมแถวแบบ forward เข้า vector แถว sparse ที่จองขนาดไว้ตรง ๆ ตัดที่ลิมิตแผ่นงานอย่างปลอดภัย คง handle เดิมเมื่อ overlap และไม่ต้อง dispatch callback
  • อ่านและเขียน OpenDocument (.ods): นำเข้าสเปรดชีตที่มีอยู่ผ่าน Open / OpenODS, ส่งออกผ่าน SaveAsODS หรือ SaveAs(xlsxOpenDocumentSpreadsheet), ปรับแต่งเอาต์พุตด้วย TODSExportOptionsและ round-trip สไตล์, rich text, รูปภาพ, แผนภูมิ, validation, conditional format, การตั้งค่าหน้ากระดาษ, พื้นที่พิมพ์, กลุ่มเค้าโครง, โครงสร้างแผ่นงาน และข้อมูลเมตาของสมุดงาน
  • นำเข้าหลายรูปแบบ: OpenDocument (.ods) และ CSV / TSV พร้อมดมตัวคั่นอัตโนมัติ ตรวจจับ BOM และเดาชนิดของค่าได้ตามออปชัน
  • ตรวจจับด้วย content signature: DetectExcelContentFormat อ่านไบต์หัวไฟล์หรือสตรีมเพื่อแยก compound file ของ BIFF, แพ็กเกจ OOXML, แพ็กเกจ OpenDocument และข้อความธรรมดาคั่นตัวคั่นออกจากกันโดยไม่สนนามสกุลไฟล์ ทั้งสองเอนจินปฏิเสธคอนเทนเนอร์ที่ไม่ตรงพร้อมข้อความที่บอก loader ที่ถูกต้อง
  • ข้อความแสดงผลที่จัดรูปแบบแล้ว: property FormattedText แบบอ่านอย่างเดียว (บน IXLSRange และ TXLSXCell) เรนเดอร์ค่าเซลล์ผ่าน number format ของมัน — ตัวคั่น, เปอร์เซ็นต์, mask วันที่/เวลา, mask หลายส่วน, รูปแบบ Boolean — ตรงกับที่ Excel แสดงในกริด
  • มอนิเตอร์การเปลี่ยนแปลงไฟล์: TXLSFileMonitor เฝ้าดูสมุดงานบนดิสก์และยิง OnFileChanged เมื่อโปรเซสอื่นบันทึกทับ ปรับช่วง polling ได้และเลือกส่ง event ที่ main thread หรือ watcher thread ก็ได้ handler หยุดหรือทำลายมอนิเตอร์เองได้ หรือสลับไฟล์ที่เฝ้าดูก็ได้
  • การถามรหัสผ่าน: event OnPassword ของเอนจิน XLS คลาสสิกขอรหัสผ่านจากแอปเมื่อ Open เจอสมุดงานเข้ารหัสที่รหัสผ่านหายหรือผิด แล้วลองเปิดใหม่
  • Format brush: TXLSXCellFormat อธิบายฟอนต์ สีเติม เส้นขอบ การจัดแนว number format และการป้องกันให้ครั้งเดียว แล้วประทับลงเซลล์ ช่วง แถว คอลัมน์ หรือทั้งแผ่น — apply เฉพาะด้านที่แตะ และ pool index resolve ครั้งเดียวต่อการ apply เพื่อจัดรูปแบบก้อนใหญ่ได้เร็ว
  • แถวแบบ streaming แบบรวมศูนย์: TXLSRowCursor เดินแหล่งข้อมูล .xls, .xlsx, .xlsm, .ods, CSV หรือ TSV ทีละแถว (FindFirst / FindNext) โดยถือแค่แถวที่ project ไว้ตัวปัจจุบันหรือ template repeat ของ ODS ในหน่วยความจำ ผลักขอบเขตแถวและการเลือกคอลัมน์ก่อนจัดสรรค่า คงผลสูตร cached และเซลล์ว่างที่มีสไตล์ แยกการมีสูตรออกจากการมีข้อความสูตรให้ได้ ปิดข้อความสูตรได้ตามออปชัน ข้ามเซลล์ covered ของ ODF กระโดดตรงระหว่างคอลัมน์ที่เลือกใน span ODF ที่ซ้ำกัน ถอดรหัส BOM UTF-8/UTF-16 และระเบียนข้อความหลายบรรทัดที่มี quote ดมตัวคั่น comma, semicolon, tab หรือ pipe และมี ValueByCol สำหรับค้นแบบ constant-time สถานะ lifecycle แบบชัดเจน, การยกเลิกที่ทำซ้ำได้, ความเป็นเจ้าของสตรีมแบบยืมหรือโอน, row view zero-copy ที่เช็ก generation, PeakRowBufferedBytesและ SheetPassesStarted ทำให้การสแกนยาว ๆ ตรวจสอบได้และปลอดภัย ส่วน TXLSForwardReader ปรับ backend ชุดเดียวกันเป็น callback แผ่นงาน/เซลล์แบบ 1-based โดยไม่เปิด part แผ่นงานที่ถูกข้าม
  • ความคืบหน้าและ diagnostics: สมุดงานแบบคลาสสิกและ XLSX มี work callback บวก begin/work/end callback พร้อมการยกเลิก ส่วน IXLSWorkbookProgress และ TXLSXWorkbook.Diagnostics เปิดเผยรหัส stable, severity, operation, บริบทแผ่นงานหรือแพ็กเกจ, ค่า return เนทีฟ และรายละเอียด exception
  • การบันทึกแบบ fail-safe: ความล้มเหลวของ commit แผ่นงานแบบคลาสสิก แผนภูมิ ส่วนขยายสไตล์ VBA, control-stream, storage และเอาต์พุต แพร่ถึงผู้เรียก ส่วนเอาต์พุตดิสก์ XLS, XLSX และ ODS เตรียม staging ก่อนแล้วจึงแทนที่ปลายทางแบบ atomic
  • diagnostics การบันทึกไฟล์ที่นำไปใช้ต่อได้จริง: TXLSXWorkbook.SaveAs(FileName) และ overload ที่ระบุ format ตรง ๆ จะคง error ดั้งเดิมของ Windows ไว้เมื่อการแทนที่ปลายทางล้มเหลว พร้อม diagnostic code 1005 และปลายทางเดิมยังอยู่ครบถ้วน
  • ที่เก็บเซลล์และสไตล์แบบกระชับ: เซลล์ XLSX อยู่ในบล็อก 256 แถว พร้อม handle สาธารณะที่ stable และ serialization เรียงตามแถวที่ cache-friendly entry แถวไม่พก tag payload ซ้ำซ้อน และการเปลี่ยนค่า/สูตร/rich text ไม่ต้องจัดชนิดดัชนีใหม่ สไตล์เซลล์ที่ import มา resolve ผ่าน array cellXf แบบ direct-index ที่เปลี่ยนแปลงไม่ได้ชุดเดียว และการบีบ pool สไตล์แบบอัตโนมัติจะทิ้งฟอนต์ สีเติม เส้นขอบ number format การจัดแนว และการป้องกันที่ไม่มีใครอ้างถึงก่อนทุกการบันทึก
  • style overlay แบบช่วง: การจัดรูปแบบแถว คอลัมน์ และสี่เหลี่ยม ยังกระชับโดยไม่ materialize อ็อบเจ็กต์เซลล์ว่าง resolve แบบ lazy เมื่อเข้าถึงเซลล์ อยู่รอดการแก้ไขเชิงโครงสร้าง และ round-trip เป็น entry คอลัมน์ แถว และเซลล์แบบ style-only ที่กระชับ
  • บันทึกแบบ stream ตามแถว: StreamingWrite (ค่าเริ่มต้น) เขียนแต่ละแถวของแผ่นงานลง deflate stream ของแพ็กเกจตรง ๆ พีคหน่วยความจำจึงตามแถวที่ใหญ่ที่สุดแค่แถวเดียว ส่วน shared strings และ XML part ช่วยเหลือไหลทีละ entry ผ่าน serializer UTF-8 ตัวเดียวที่ใช้ซ้ำได้
  • เปิดเฉพาะข้อมูลเมตา: TXLSXWorkbook.MetadataOnly parse คุณสมบัติสมุดงาน defined name ชื่อ/สถานะ visibility ของแผ่น สไตล์ ธีม connection และ external link แต่ข้าม XML เซลล์ของแผ่นงาน พร้อม shared strings, ข้อมูลคอมเมนต์/บุคคล, relationship แผ่นงาน, ภาพวาด, แผนภูมิ, ตาราง, query table, pivot และ payload ทึบที่แผ่นงานอ้างถึง เพื่อค้น property/ชื่อจากสมุดงานใหญ่ได้เร็วและเบาหน่วยความจำ
  • slot external workbook ของ XLSX ยึดลำดับการประกาศใน workbook.xml และคง placeholder ว่างไว้เมื่อ relationship พัง ทำให้ reference [N] ในสูตรคงเสถียรข้ามการโหลดและบันทึก
  • ให้ TXLSXWorkbook.SelectedSheets parse XML เซลล์เฉพาะแผ่นที่ระบุชื่อ ส่วนแผ่นอื่นคงชื่อกับ visibility แต่ไม่มีเซลล์ เรียก LoadSheet(Index) เพื่อ materialize แผ่นที่ข้ามไว้ตามต้องการจาก archive เดิม
  • คัดลอก part ที่บีบอัดไว้แบบเพิ่มเติม: TXLSXWorkbook.PreserveRawParts เปิด archive ต้นทางส่วนตัวที่ validate แล้วหนึ่งชุดต่อ SaveAs และคัดลอก theme, VBA project, connection, external link, รูปภาพ, แผนภูมิ, pivot-table, pivot-cache และ entry ทึบที่ relationship เข้าถึงได้ซึ่งไม่เปลี่ยนแปลง พร้อม payload บีบอัดเดิม การบันทึกไฟล์ที่สำเร็จกลายเป็น baseline สะอาดรอบถัดไป ส่วนสมุดงานที่ backed ด้วยสตรีม ไฟล์ต้นทางที่เปลี่ยน payload ที่ถูกแก้ วิธีบีบอัดที่ไม่รองรับ และขนาดบีบอัดที่ไม่ตรง จะเข้าเส้นทาง serialization fallback แบบ transactional หรือถูกปฏิเสธ
  • การเก็บรักษาส่วนขยายสมุดงาน: เปิด/บันทึก XLSX คง namespace declaration ระดับ workbook-root ที่เป็นของฝ่ายอื่น, attribute แบบ markup-compatibility, payload <extLst> ระดับสมุดงานแบบครบ ๆ และ relationship ที่ไม่รู้จักของมันไว้ ขณะที่แผ่นงาน ชื่อ view คุณสมบัติการคำนวณ และ pivot cache แบบมีชนิดยังแก้ไขได้ reference ของ relationship จะถูก map ใหม่เมื่อ ID ที่สร้างขึ้นชนกัน
  • Slicer: Worksheet.Slicers.Add(Table, ColumnName) สร้าง table slicer (Excel 2013+) ได้ครบวงจร — รวมทั้ง slicer cache, defined name ที่สงวนไว้, ส่วนขยายแผ่นงาน และ drawing anchor — พร้อมควบคุมตำแหน่ง คำอธิบาย จำนวนคอลัมน์ สไตล์ และความสูงแถว สมุดงานที่พก slicer ที่ Excel เขียนไว้ (table หรือ pivot) จะ round-trip กลับมาสมบูรณ์ผ่านการเปิดและบันทึก ส่วนที่ไม่ถูกแก้ไขและ anchor replay กลับแบบ byte-for-byte ขณะที่สมุดงานโดยรอบยังแก้ไขได้เต็มที่
  • หน้าต่างสมุดงานหลายบาน: TXLSXWorkbook.WorkbookViews เปิดเผยคอลเลกชันที่เรียงลำดับ พร้อม operation add, insert, delete, move, clear, สถานะ visibility และเรขาคณิตแบบมีชนิด, attribute/ส่วนขยายที่ไม่รู้จักซึ่งแก้ไขได้ และการ map workbookViewId ของแผ่นงานใหม่ property single-window เดิมยังใช้ได้ในรูป projection ของ view แรก
  • defined name ภายนอกและความล้มเหลวของการ refresh: TXLSXExternalLink parse, เก็บ และ round-trip entry <definedNames> จากสมุดงานที่ลิงก์ไว้ ส่วน TXLSXExternalSheetData แต่ละตัวติดตาม flag RefreshError เป็นสถานะ refresh ล้มเหลว โดยไม่ต้องมีแหล่งข้อมูลมีชีวิต
  • นำเข้าคลิปบอร์ดหลายรูปแบบ: XLSPasteFromClipboardRich เลือกรูปแบบ XML Spreadsheet บนคลิปบอร์ด (สูตร สไตล์ merge) เหนือข้อความ Unicode ธรรมดา พร้อมฟังก์ชันตรวจจับ สกัด และ parse SpreadsheetML 2003 โดยเฉพาะ
  • แลกเปลี่ยนคลิปบอร์ด Biff8 แบบเนทีฟ: CopyToClipboard บนทั้งสองเอนจิน ปล่อย payload compound-document "Biff8" ของ Excel เองไว้เคียงข้างข้อความและ HTML และ PasteFromClipboard กินมันก่อน — ค่ามาสะอาดไร้การ re-parse ตาม locale, reference สูตรสัมพัทธ์ re-anchor ที่ปลายทาง paste และ number format, ฟอนต์, สีเติม, เส้นขอบ, การจัดแนว และเซลล์ที่ผสาน round-trip ได้ทั้งระหว่างสมุดงาน HotXLS ด้วยกันเองและจากสำเนาของ Excel
  • มาร์กอัป rich text: property TaggedText ของเซลล์ แปลงกลับไปกลับมาระหว่าง rich-text run กับ tag เบา ๆ (<b>, <i>, <u>, <s>, <sub>, <sup>, <color=#RRGGBB>, <font=Name>, <size=N>) ได้ทั้งสองทิศ
  • ตัวอ่านคลิปบอร์ดที่ปลอดภัยต่อ 64 บิต พร้อม retry เมื่อมีการแย่งกัน, แคชการจับคู่ช่วง conditional format และดัชนีไฮเปอร์ลิงก์ PDF แบบ binary search
  • ส่วนขยายการคำนวณ: ลงทะเบียน user function ตามชื่อ, audit API สำหรับฟังก์ชันไม่รู้จัก, เปิดแบบ recovery mode ที่ข้าม part ที่เสียหาย, แลกเปลี่ยนคลิปบอร์ด Biff8 แบบเนทีฟ และแคชการจับคู่ช่วง data validation
  • รูปใน PDF: รูปแผ่นงานฝังเป็น XObject Flate RGB พร้อม JPEG passthrough และการใช้ stream PNG ซ้ำ (ไม่ encode ใหม่, คง alpha channel ผ่าน soft mask) รูปที่เหมือนกันระดับ byte ฝังครั้งเดียว, keep-together block และ XlsxAutoPageBreaks ช่วยให้ pagination ตรงกัน ส่วน ZipCompressionLevel และ DeterministicOutput คุมเอาต์พุตของการบันทึก
  • pipeline ส่งออก PDF: content stream ของหน้าถูกบีบอัดแบบ Flate, text operation ต่อเนื่องกันแชร์ text block แบบ batch พร้อมคัดฟอนต์/สีซ้ำ, fill ที่ติดกันและเท่ากัน merge เป็นสี่เหลี่ยมเดียว และเส้นขอบที่อยู่เส้นตรงเดียวกัน stroke เป็น run รวม — ไฟล์เล็กลงและสร้างเร็วขึ้น OnProgress และ OnProgressEx ที่ยกเลิกได้ รายงานสถานะ begin, page, end ส่วน Cancel หยุด export ยาว ๆ โดยไม่ commit PDF ครึ่ง ๆ กลาง ๆ ลง stream ปลายทาง
  • ความเที่ยงข้อความเซลล์ PDF: wrap คำจริงพร้อมจัดบล็อกแนวตั้งและบรรทัดแบบ justified/distributed, ข้อความหมุนและแนวตั้งซ้อน, shrink-to-fit, overflow เข้าเซลล์เพื่อนบ้านที่ว่างแบบ Excel พร้อม clipping, ตัวเลขชิดขวาภายใต้การจัดแนว general, ย่อหน้า, rich-text run พร้อมสไตล์ ขนาด สี ขีดเส้นใต้ ขีดฆ่า ตัวยก ตัวห้อยต่อ run, เส้นขอบเฉียงและเส้นคู่ และข้อความคลุมเซลล์ที่ผสาน — ทั้งหมดวางตำแหน่งด้วย advance width ของ Helvetica ที่ผ่านการ calibrate ด้วย GDI
  • ความเที่ยงการพิมพ์ PDF: header/footer มีสไตล์พร้อมโค้ดขนาดฟอนต์ สี bold/italic/underline/strike และตัวยก/ตัวห้อยของ Excel, โหมดพิมพ์ขาวดำ, heading แถว/คอลัมน์ที่พิมพ์ออกมา, จัดกึ่งกลางแนวนอนและแนวตั้ง, indicator คอมเมนต์บวกหน้ารวมรายการคอมเมนต์ท้ายเอกสารผ่าน PrintCommentsAtEnd, ลิงก์ GoTo ในเอกสารสำหรับไฮเปอร์ลิงก์ภายใน, preference PageLayout ของ viewer พร้อม XMP metadata, ความกว้างคอลัมน์ MDW แบบ Excel-accurate และการฝัง TrueType collection พร้อมตัดหนา/เอียงแบบสังเคราะห์ของ face Unicode
  • แผนภูมิใน PDF: แผนภูมิแผ่นงานวาดเป็นเวกเตอร์เนทีฟ — column/bar แบบ clustered, stacked และ percent-stacked, line พร้อม marker, area, pie และ doughnut พร้อม label เปอร์เซ็นต์, scatter และ radar — พร้อมกรอบมีชื่อเรื่อง, แกนและ tick label สเกลอัตโนมัติ, gridline, legend, data label, สีเติมต่อ series และ palette accent เริ่มต้นของ Excel แผนภูมิที่ anchor เกินเซลล์ข้อมูลสุดท้ายจะขยายพื้นที่พิมพ์ให้
  • PDF แบบ interactive: ไฮเปอร์ลิงก์แผ่นงานกลายเป็น annotation ลิงก์ที่คลิกได้ และทุกแผ่นที่ export ได้ bookmark ใน document outline
  • ส่วนขยายระดับแพ็กเกจ: custom document property แบบมีชนิด, custom XML data part, SVG image companion, data label ของแผนภูมิต่อ series ที่ดึงจากเซลล์พร้อม cache แบบ indexed และ override visibility ต่อจุด, table style ที่ผู้ใช้นิยามพร้อมสีต่อ section และ audit API ของ data validation ที่ลิสต์ทุกเซลล์ที่ละเมิด
  • อัปเกรดความเที่ยงรูปแบบ: number format เวลาสะสม [h]:mm:ss และเศษส่วน # ??/?? เรนเดอร์ได้ทุกที่, วงเล็บ [Red] เปลี่ยนสีข้อความ PDF, gradient fill เซลล์ round-trip และเรนเดอร์ใน HTML/PDF/viewer, frozen pane และการเลื่อนของ pane อ่านกลับได้, DispBlanksAs/PlotVisibleOnly เป็น property ของแผนภูมิ, กล่องคอมเมนต์จัดขนาดผ่าน WidthPt/HeightPt/AutoSizeFromTextและ ValidateNumberFormat ตรวจสตริง custom format
  • ค้นหาตามความหมาย Excel: FindText / ReplaceText รองรับ wildcard (*, ?, escape ด้วย ~ ), จับคู่ทั้งเซลล์, case sensitivity, ค้นจากข้อความสูตร, สแกนย้อนหลัง, ลำดับสแกนคอลัมน์ก่อน, FindTextIn / ReplaceTextIn แบบมีหน้าต่างที่จำกัดการค้นไว้ในช่วงสี่เหลี่ยม และ callback แทนที่ต่อรายการที่เจอ, จัดกลุ่มตามความหมาย Excel ผ่าน AddSubtotals (แถว SUBTOTAL มี label, grand total, outline level, page break และโหมดแทนที่), A1ToR1C1 และ R1C1ToA1 แปลงสูตรระหว่าง reference style A1 กับ R1C1 ได้ทั้งสองทิศ บวก WriteAutoValue สำหรับดมชนิดข้อความแบบ Excel (วันที่ ISO, m/d/yyyy แบบสหรัฐ และ d.m.yyyy แบบยุโรป พร้อมเวลา AM/PM ตามออปชัน), GetRangeStatistics รวมสถิติของช่วง, SortRange แบบไม่สน case ที่คงสูตรด้วยความหมาย reference ของ Excel (ส่วน $ อยู่ครบ, relative ref re-anchor), GetHtmlFromCell ชิ้นส่วน HTML รายเซลล์ และ SetCellFromHtml ชิ้นส่วน HTML เป็น rich run
  • พื้นหลังแผ่นงาน: SetBackgroundImage เขียนรูปแบบ tile ได้ทั้งสองเอนจิน ฝั่ง XLSX คงความเป็นเจ้าของ media ของแพ็กเกจข้ามการคัดลอกแผ่นงาน ส่วน Classic อ่าน/เขียนระเบียนพื้นหลัง BIFF8 แบบมีชนิดพร้อมการ split payload ต่อเนื่อง คงรูปแบบที่ไม่รู้จักแบบเป๊ะ แยกสำเนาออกจากกัน และแปลงรูปแบบที่รู้จักข้ามเอนจิน workbook viewer แสดงพื้นหลังที่ใช้ได้เบื้องหลังเซลล์ที่ยังไม่เติม ส่วน print, PDF, SVG, bitmap, metafile และตัวส่งออก HTML ทั้งสองตัวปิดพื้นหลังเป็นค่าเริ่มต้นและเปิด ExportSheetBackgroundImages ให้ส่งออกแบบชัดเจน พร้อม phase ต่อเนื่องข้ามหน้าและการใช้ทรัพยากรต่อ session ซ้ำ
  • ความลึกของเอนจินรูปแบบ: number format แบบมีเงื่อนไข ([>=100]) เลือกตามค่า, ส่วนข้อความ (@) ทำ template สตริง, TaggedText รับ <br>, <strong>/<em>และรูป attribute <font color=...> , ConvertFormulasToValues มีโหมด only-external ทั้งสอง facade, keep-together block ของคอลัมน์มาเสริมแถว, form control Spinner/ScrollBar แบบคลาสสิกเขียนลง XLS ได้ และ row auto-fit จัดการเซลล์ที่ผสาน
  • แลกเปลี่ยนคลิปบอร์ด: PasteFromClipboard อ่านข้อความคั่น tab ลงเซลล์พร้อมเลื่อนชนิด number/date/Boolean และจำสูตรได้ ส่วน CopyToClipboard ระดับช่วง ปล่อยทั้งข้อความตาราง Unicode และ HTML มีสไตล์ พร้อมสูตร เซลล์ที่ผสาน ลิงก์ การจัดรูปแบบที่แสดง และการคงตัวคั่นที่ฝังอยู่
  • workbook viewer ที่แก้ไขได้: TXLSWorkbookViewer bind ตรงกับเอนจินสมุดงานได้ทั้งคู่ โหลดไฟล์ XLS, XLSX, XLSM, XLTX, XLTM หรือ ODS เรนเดอร์สไตล์และ conditional format โดยไม่ materialize เซลล์ sparse ของ XLSX และเพิ่มการแก้ไข in-place ที่รู้เรื่องเซลล์ป้องกัน, การป้อนผ่าน formula bar, recalculate อัตโนมัติ, การเลือกสี่เหลี่ยม, event reference สูตร และ undo/redo แบบมีขอบเขต O(1)
  • PivotTable cache ของ XLS แบบคลาสสิก ใช้ storage stream อิสระที่มี identifier ไม่ซ้ำ, reference แหล่งข้อมูลแบบแผ่นงานหรือชื่อ, ชื่อแผ่น Unicode และอ่าน/เขียน cache ที่เข้ารหัสได้ ส่วนส่วนขยาย cache ที่มีอยู่จะคงไบต์เดิมเมื่อบันทึก
  • ตัวช่วยออกแบบ layout pivot ที่ใช้ซ้ำได้: TXLSPivotDesigner เปิดเผยโซน available, row, column, filter และ value, จัดเรียงฟิลด์ใหม่แบบ deterministic, aggregation เริ่มต้นตามชนิด, เปลี่ยน aggregation แบบชัดเจน, validate layout และ apply ผลลัพธ์ให้โมเดล pivot ทั้ง XLS และ XLSX
  • form control แบบคลาสสิก: แผ่นงานและคอลเลกชัน shape สร้าง ระบุ แก้ไข ลบ และ round-trip control button, radio-button, checkbox, combo-box และ list-box ได้ พร้อม label แบบมีชนิด, สถานะเช็ก, การเรนเดอร์แบบแบนหรือ 3D, macro binding, เซลล์ที่ลิงก์, ช่วงแหล่งข้อมูล, ชนิด control และ anchor เซลล์
  • การสำรวจแผนภูมิ XLS แบบคลาสสิกผ่าน GetChartModel ถอดรหัสตระกูลแผนภูมิ, สถานะ 3-D, ชื่อเรื่องแผนภูมิและแกน, legend, แกนพร้อมกลุ่มแกน primary/secondary ของมัน, ชื่อ series, category, สูตรค่า และ flag การแสดง data label ต่อ series พร้อมตัวคั่น, binding กลุ่มแผนภูมิ primary/secondary ต่อ series, reference category/value แบบมีชื่อหรือภายนอก, สไตล์เส้น สีเติม และ marker ต่อ series ที่พกสีเติมจากธีมผ่านส่วนขยายสีธีม GelFrame OfficeArt (ดัชนีสีธีมบวก tint), พารามิเตอร์ฉาก 3-D เต็มรูปแบบจาก stream ของแผนภูมิ และลิงก์ pivot-chart (ชื่อ view ของ PivotTable ต้นทางบวก flag hide-field-captions ผ่านระเบียน SXViewLink / PivotChartBits) รวมถึงอ็อบเจ็กต์แผนภูมิฝังบนแผ่นงานธรรมดาผ่าน AddChartObjectพร้อม trendline ต่อ series (ชนิด regression, อันดับหรือช่วงเวลา, intercept อัตโนมัติหรือคงที่, การแสดงสมการและ R-squared, forecast และ backcast, ชื่อที่แสดง) และ error bar (ด้านทิศทาง, ชนิดค่า, end cap, ขนาด)
  • รูป header และ footer XLSX แบบมีชนิดผ่าน TXLSXWorksheet.HeaderFooterImagesครอบคลุม slot ซ้าย กลาง ขวาทั้งหมดบนหน้า odd, even และหน้าแรก พร้อมไบต์รูป รูปแบบ ชื่อเรื่อง ขนาดหน่วยจุด margin หน่วยจุด field code รูปอัตโนมัติ การคัดลอกแผ่นงาน และ round-trip เปิด/บันทึกที่ปลอดภัยต่อ relationship เคียงข้างคอมเมนต์
  • เอฟเฟกต์รูป XLSX ที่แก้ไขได้ผ่าน TXLSXImageรวมขอบ crop เป็นเปอร์เซ็นต์, transparency, brightness, contrast, fill แบบ stretch หรือ tile, การหมุนตามองศา และการคงโครงสร้างของ DrawingML อื่นที่ import มาซึ่งไม่เกี่ยวข้อง
  • การสร้างและ round-trip แผนภูมิ XLSX ขั้นสูง พร้อม plot group แบบ column, bar, line, pie, area, scatter, bubble, radar, stock, surface และ 3D ที่เรียงลำดับได้, combination chart จริง ๆ ที่กำหนดลำดับการวาดของ plot group ชัดเจน, คู่แกน primary/secondary, แกนวันที่และแกน series แบบมีชนิด, มุมมอง 3D ตั้งค่าได้, สไตล์แกลเลอรีของ Excel, สไตล์ข้อความ title/legend/แกน, layout แบบกำหนดเองของ plot, title, legend และชื่อแกน, cache series แบบ string หรือตัวเลขที่ sparse, cache category หลายระดับแบบ sparse พร้อมการ resolve ช่วงสองมิติแบบมีชีวิต และการเก็บรักษาส่วนขยาย ChartML และการจัดรูปแบบที่ไม่รู้จักแบบแก้ไขได้
  • format patch แบบเลือกจุด: TXLSXRange.ApplyFormatPatch คัดลอกเฉพาะองค์ประกอบฟอนต์ สีเติม เส้นขอบ number format การจัดแนว หรือการป้องกันที่ขอมา ปู pattern ต้นทางที่เล็กกว่าทับปลายทางที่ใหญ่กว่า และไม่แตะค่าเซลล์
  • ส่งออกข้อมูลแบบ master-detail: TDataToXLS.ReadDetailTables ส่งออก dataset detail ที่ลิงก์อยู่แบบ recursive ใต้ record master แต่ละตัว ส่วน IndentDetailTables เพิ่มคอลัมน์ย่อหน้าหนึ่งคอลัมน์ต่อระดับ relationship และการตั้งค่าส่งออกที่สืบทอดกันทำให้ลำดับชั้นดูสม่ำเสมอ event record และค่าแบบ write-ahead กรอง record และแปลงค่าฟิลด์ได้โดยไม่รบกวน cursor ของ dataset
  • สร้าง WordArt: TXLSXWorksheet.AddWordArt สร้างข้อความ DrawingML ที่ anchor กับเซลล์ พร้อม warp preset, สีเติมข้อความ และสีเส้นขอบที่ตั้งได้ และรอบเปิด/บันทึกถัด ๆ ไปคง anchor ของ shape ไว้ครบถ้วน
  • การเก็บรักษาแพ็กเกจ OOXML ที่ไม่รองรับ: custom part ที่ relationship ระดับ package-root, สมุดงาน, แผ่นงาน หรือภาพวาดที่ไม่รู้จักเข้าถึงได้ จะคง relationship ID แบบกันชน, content type, relationship ลูก, ทางเลือกการบีบอัด และไบต์ payload แบบเป๊ะ ๆ ข้ามการเปิด/บันทึก พร้อม opt-out และ diagnostics ของ part ที่เก็บไว้บน TXLSXWorkbook
  • ตารางสไตล์ Excel พร้อมสไตล์ ช่วงและเกณฑ์ตัวกรอง สถานะการเรียง identifier คอลัมน์ที่ stable, label และฟังก์ชันของแถว total, สูตร calculated column, สูตรแถว total, การแก้ไขแถว/คอลัมน์ที่รู้เรื่องโครงสร้าง และ helper คอลเลกชันแบบ round-trip
  • กฎ ignored-error ของแผ่นงานแบบมีชนิดผ่าน TXLSXWorksheet.IgnoredErrorsครอบคลุมหมวด error มาตรฐานทุกหมวด, reference เซลล์หลายพื้นที่, การคัดลอกแผ่นงาน, การแก้ไขแถว/คอลัมน์ และ round-trip เปิด/บันทึก
  • การเขียน Scenario Manager แบบ What-If ที่มีชนิดผ่าน TXLSXWorksheet.Scenariosรวม scenario ที่ active และที่แสดง, ช่วงเซลล์ที่เปลี่ยนค่า, สถานะล็อก/ซ่อน, คอมเมนต์ผู้ใช้, ค่า input และ number format, การคัดลอกแผ่นงาน, การแก้ไขเชิงโครงสร้าง และ round-trip เปิด/บันทึกโดยไม่โดน repair
  • ตารางข้อมูล What-If แบบมีชนิดผ่าน TXLSXWorksheet.AddDataTable และ DataTablesครอบคลุมความหมาย row-input, column-input, two-variable, input ที่ถูกลบ, ลำดับการคำนวณ, การคัดลอกแผ่นงาน, การแก้ไขเชิงโครงสร้าง และ round-trip SpreadsheetML
  • connection ข้อมูลภายนอกแบบมีชนิดผ่าน TXLSXWorkbook.Connections และผล query ของแผ่นงานผ่าน TXLSXWorksheet.QueryTablesรวมนโยบาย refresh, credentials, การตั้งค่า database, web และข้อความ, ค่าพารามิเตอร์แบบมีชนิดแบบเป๊ะ, binding ตาราง/ฟิลด์, การแก้ไขเชิงโครงสร้าง, การคัดลอกแผ่นงาน และ round-trip OOXML ที่ปลอดภัยต่อส่วนขยาย
  • นโยบายการคำนวณสมุดงานครบวงจรผ่าน CalcMode, RefMode, การตั้งค่า iteration, flag recalculate, การคุม full precision และการตั้งค่าการคำนวณขนาน พร้อมค่าเริ่มต้นตาม schema และการเก็บค่าที่ไม่ใช่ค่าเริ่มต้นอย่างอิสระจากกัน บวก memo RecalcLookupCache และ RecalcAggregateCache แบบเลือกใช้ ที่ให้การสแกน XLOOKUP/XMATCH, VLOOKUP/HLOOKUP/MATCHและ SUMIF/COUNTIF/AVERAGEIF ที่ซ้ำ ๆ บวก SUM/AVERAGE/MIN/MAX/COUNT แบบไม่มีเงื่อนไขบนช่วงธรรมดาช่วงเดียว ใช้ผลแรกซ้ำระหว่าง pass การ recalculate โดยจะทำงานเฉพาะเมื่อพิสูจน์ได้ว่ากราฟ dependency stable ต่อ reference ผลจึงไม่เคยต่างกัน
  • นโยบาย recalculate ตอนบันทึกผ่าน RecalcBeforeSave (manual, if-dirty, always) บวกการตรวจสถานะ dirty ด้วย RecalcNeeded และการดึงค่ารายเซลล์ด้วย RecalcCell หลัง recalculate ครบรอบ
  • placeholder ค่าของรายงานพร้อม fallback {{name;default}} , expression dbvalue/dbcount/tonumber/ref เหนือ DataContext ที่ลงทะเบียนไว้และ data session ต่อ run ที่แยกเดี่ยว, เซลล์ {{=formula(...)}} เปล่า ๆ ที่เขียนเป็นสูตรมีชีวิต และ directive เชิงโครงสร้าง {{#imgsize}}, {{#comment}}, {{#html}}, {{#sheetvisible}}, {{#deletesheet}} structural directives
  • ตารางผู้ใช้แบบ lazy ที่มีชนิดผ่านเซลล์ {{#usertable(alias, logicalName, providerKey, name=expression)}} แบบเป๊ะ ๆ พร้อมเช็ก syntax ตอน compile, preflight แบบ static ที่ไม่ต้องพึ่ง resolver, พารามิเตอร์แบบ dynamic มีชนิด, บังคับ provider ที่ลงทะเบียน, diagnostics conflict แบบไม่สนตัวพิมพ์, ลิมิตการประกาศ และการโหลดครั้งแรกที่ใช้ผ่าน dbvalue หรือ dbcount; TXLSReportGenerator.DataContext และ TXLSReportTemplateChecker.DataContext พก registry เดียวกันเข้าสู่การ generate และ validate
  • จัดทรงข้อมูลรายงานผ่าน combinator Filterแบบ lazy, Sortหลายคีย์แบบ stable และ Distinct adapter FromDataSet และ FromObjects bind dataset ที่เปิดอยู่และ list อ็อบเจ็กต์ที่มี published property เป็นตารางรายงาน band RunBidirectional ให้แถว master แต่ละแถวมีคอลัมน์ที่ขับเคลื่อนด้วยลูกของตัวเอง ส่วน PreprocessAndRun ให้ template แก้ตัวเองตามข้อมูลก่อนการเติมรอบสุดท้าย
  • ตัวเลือก paste คลิปบอร์ด (เฉพาะค่า, แทรกแถว/คอลัมน์) บนทั้งสองเอนจิน และ diagnostics OnSkippedRecord บน direct reader, row cursor และ forward reader เปิดเผย reference เซลล์ที่เสียรูปซึ่งถูกข้ามและการสแกนแผ่น BIFF ที่ถูกยกเลิกกลางคัน
  • round-trip การป้องกัน shared-revision ของ XLS คลาสสิกผ่าน SharedRevisionProtected และ SharedRevisionPasswordHashและฝั่งรายงานจัดการการเข้ารหัสให้ครบวงจร: template ที่เข้ารหัสเปิดด้วยรหัสผ่าน และ RunToEncryptedFile ปล่อยผลลัพธ์ที่เข้ารหัสได้ใน step เดียว
  • Cross-workbook CopyRangeTo/CloneRangeTo ข้ามสมุดงาน map สไตล์เซลล์ด้วยค่าข้าม pool และ CreatedDate, LastSavedDate, RevisionNumber และ EditTimeMinutes ของ XLS คลาสสิก round-trip ผ่าน stream สรุปของ OLE
  • การเรนเดอร์แผนภูมิกิน GapWidth, Overlap และการจัดกลุ่ม stacked / percent-stacked ของ plot group แบบ bar เข้ามาด้วย แผนภูมิ bar/column ที่เรนเดอร์จึงตรงกับความหมาย layout ของโมเดล
  • แผนภูมิ round-trip การจัดรูปแบบ chart-space (มุมมน, สีพื้นหลัง/เส้นขอบ/plot area) และสวิตช์ป้องกันแผนภูมิทั้งห้าตัว โดยตัวเรนเดอร์กินสีเหล่านั้นเข้าไป Smooth ระดับ series และสีเติม/เส้นขอบของ marker round-trip และเรนเดอร์เป็นเส้นโค้ง แกนพกโหมด crossing และสไตล์ tick mark และ AutoTitleDeleted กดชื่อเรื่องที่ derive มา
  • TXLSPDFWriter สร้าง PDF โดยไม่ต้องมีสเปรดชีตเลย: ขนาดหน้าแบบชัดเจน, การไหลหลายหน้า, สี่เหลี่ยม/เส้น/วงรี, ข้อความที่วัดขนาดได้, transform, clipping และการควบคุม graphics state
  • AutoFit มี flow MarkSheet/ApplyMarked สองเฟส พร้อมค่าวัดที่ยังค้างตรวจดูได้, ขอบเขต fit-region, IgnoreStrings, KeepHeightAutomatic, พื้น DefaultRowHeightVisual และ FitWorkbook
  • ฟอนต์ Unicode ใน PDF รองรับนโยบายการฝังแบบ automatic, required-subset, complete-program และ map-only, โปรแกรม OpenType CFF แบบลอย, การจัดตำแหน่ง GPOS/kern ที่แชร์กันสำหรับการวัดและการวาด, callback OnFontEmbed ก่อน resolve และ resolver ตระกูล/สไตล์ OnGetFontDirectories ที่ cache แบบ recursive เอาต์พุต PDF/A ยังคงต้องฝังโปรแกรมฟอนต์เสมอ
  • helper คอลเลกชันค้นหา ลบ และจัดลำดับใหม่ของแผ่นงาน ตาราง แผนภูมิ รูปภาพ ช่วงที่ผสาน และ external link ตามชื่อหรือตำแหน่ง
  • สร้างแผนภูมิจากช่วงข้อมูลในคำสั่งเดียว: AddChartFromRange และ shortcut AddColumnChart / AddBarChart / AddLineChart / AddPieChart / AddAreaChart ดึง series และ category จากบล็อกข้อมูลให้เองอัตโนมัติ เหมือน insert-chart-from-selection ของ Excel
  • การแทรกและลบแถว/คอลัมน์ที่ปรับสูตรให้เอง คอลัมน์ตารางกับข้อมูลเมตา filter/sort ของมัน ทำให้ structured reference ของคอลัมน์ตารางที่ถูกลบ invalidate ข้ามผู้ใช้สูตร แบ่ง conditional format แบบ cell-value/expression และ data validation ออกจากกันเมื่อพื้นที่ที่แก้ไขต้องการ formula anchor ต่างกัน คงโดเมน conditional format แบบ aggregate ให้ครบ และย้าย defined name, ไฮเปอร์ลิงก์, series แผนภูมิรวม bubble size และ anchor ของรูป แผนภูมิ กล่องข้อความ WordArt ให้เองอัตโนมัติ
  • การคำนวณสูตรที่ใช้ evaluator XLS แบบคลาสสิกร่วมกัน พร้อม registry ฟังก์ชันผู้ใช้ระดับ process และระดับสมุดงาน ความหมาย override ระดับสมุดงาน การเรียก handler แบบ lock-free ที่ขนานได้ปลอดภัย, broadcast array operator และ error ต่อเซลล์, เมทริกซ์ LINEST / LOGEST หลายตัวแปรครบสูตร, ผลทำนาย TREND / GROWTH แบบมีรูปทรง, ฟังก์ชันข้อความ วันที่ workday วิศวกรรม/แปลงเลขฐาน bitwise สถิติ aggregate และคณิตศาสตร์ครบชุด, ISFORMULA ที่คง reference โดยไม่ recalculate เป้าหมาย, XMATCH / XLOOKUPแบบไบนารีลอการิทึม, ตรวจจับ optional argument ด้วย ISOMITTED , แปลง array ด้วย ARRAYTOTEXT / VALUETOTEXT , XIRR / XNPV ที่ validate แล้ว, PDURATION / RRI , ค่าเสื่อม VDB แบบเศษงวด และ callback ฟังก์ชันกำหนดเอง OnUserFunction ส่วน AnalyzeFormulaIssues ให้ preflight แบบมีโครงสร้างสำหรับฟังก์ชันที่หายไป, external reference และองค์ประกอบวงจร dependency ที่ระบุได้เป๊ะ
  • Structured reference รูปแบบ current-row (Table[@Col]) ประเมินกับแถวของเซลล์สูตรเอง ทั้งในการ recalculate แบบ serial และแบบขนาน
  • การวิเคราะห์ dependency ขยาย defined name ที่มีขอบเขตและที่นิยามด้วยสูตรแบบซ้อน รวม reference หลายพื้นที่ และใช้ cycle guard เฉพาะเมื่อ resolve dependency แบบ static ไม่ได้
  • shared formula ที่ Excel เขียนไว้ เปิดมาโดย follower ทุกตัวถูกขยายเป็น expression ที่ relative ต่อเซลล์ถูกต้อง ครบทั้งเส้นทาง full-workbook, direct reader แบบ streaming และ row cursor ส่วน anchor และ follower ของ CSE array รอดจากการแก้โครงสร้าง whole-array ที่ปลอดภัย การคัดลอกช่วงเต็ม การทำสำเนาแผ่นงาน และการคัดลอกแผ่นข้ามสมุดงาน
  • dynamic array เขียนได้ด้วย TXLSXRange.SetDynamicArrayFormulaคงช่วงสูตรและข้อมูลเมตา XLDAPR ข้ามรอบเปิด/บันทึก แชร์ข้อมูลเมตาแบบ deduplicate หนึ่งระเบียนข้าม root, map ระเบียนนั้นใหม่ระหว่างคัดลอกข้ามสมุดงาน และลบทิ้งเมื่อ root สุดท้ายถูกเคลียร์
  • การเขียน form control บนแผ่นงาน XLSX (AddFormButton / AddFormCheckBox / AddFormRadioButton / AddFormComboBox / AddFormListBox) พร้อม shape VML, part ctrlProps และ round-trip ไฟล์ที่มี control แบบคงเดิมทุกไบต์
  • การประเมินข้ามสมุดงานแบบมีชีวิตของ XLSX ผ่าน ExternalWorkspace ที่คง path ไว้และ facade RegisterExternalWorkbook ที่เข้ากันได้: เป้าหมาย relationship เต็มรูปแบบกับส่วนขยายยังแยกจากกัน, alias ที่กำกวม fail อย่างชัดเจน, การทำลายเป้าหมายถอน adapter ที่มีชีวิตอย่างปลอดภัย และแคชแบบมีชนิดระดับไฟล์ยังเป็น fallback โดยไม่เข้าถึงไฟล์หรือเครือข่ายเองเด็ดขาด
  • การเทียบสมุดงานผ่าน TXLSXWorkbookCompare รายงานความต่างระดับแผ่นงาน เซลล์ สูตร และการผสาน เป็นรายการแบบมีโครงสร้างหรือรายงานบรรทัดต่อหนึ่งความต่าง
  • การสร้างโค้ดจากสมุดงานผ่าน TXLSCodeGen (ภาษา Delphi และ C++Builder) และการ validate กฎคอลัมน์ตอน import ผ่าน TXLSImportCheck พร้อมใส่ฟอนต์แดงและคอมเมนต์กำกับ บวกโหมดเก็บเฉพาะจุดที่ละเมิด
  • ระเบียนแผ่นงาน XLS ที่ไม่รู้จัก round-trip แบบคงเดิมทุกไบต์ — ระเบียนเฉพาะของเวนเดอร์หรือใหม่กว่าสเปกถูกเก็บตอนอ่านและ replay ตอนบันทึก
  • shape preset-geometry ผ่าน AddPresetShape — token ST_ShapeType ของ OOXML ตัวไหนก็ได้ ขึ้นไปกับภาพวาดแบบเดิมและ round-trip กลับมาเหมือนเดิม
  • ประมวลผล template: ApplyTemplate แทน placeholder {{key}} ทั้งแผ่น และ FillTemplateBand โคลนบล็อก template ต่อ record พร้อมแปลสูตร, conditional format ที่เกี่ยวข้อง, validation, ลิงก์, คอมเมนต์, รูป, แผนภูมิ, การโคลนการผสาน และเงื่อนไข #skip ระดับแถว CloneRangeTo เปิดเผยเส้นทางคัดลอกที่รู้เรื่อง dependency แบบเลือก payload ได้ TXLSCompiledReportTemplate compile ตำแหน่ง placeholder กับชิ้นข้อความครั้งเดียวสำหรับ run ซ้ำ ๆ ข้ามเซลล์, rich text, คอมเมนต์, ไฮเปอร์ลิงก์, ข้อความในภาพวาด, header/footer, ชื่อแผ่นงาน, defined name และคุณสมบัติเอกสาร โดยไม่ต้อง rescan สมุดงาน รองรับ diagnostics preflight แบบระบุตำแหน่ง, การ validate เข้มก่อน mutate และแผ่นงาน diagnostics TXLSCompiledReportRunner เพิ่มความคืบหน้าระดับเป้าหมาย, การยกเลิก, จำนวน apply ที่เป๊ะ, สถานะเสร็จ/ล้มเหลวที่ใช้ซ้ำได้, event คู่ระดับสมุดงาน/แผ่นงาน, สแนปชอตปัญหาที่กู้คืนได้ และเอาต์พุตแบบ atomic เป็น stream, ไฟล์ หรือไฟล์เข้ารหัส TXLSReportGenerator เพิ่ม event ตอนอ่าน template และแหล่งแบบสมุดงาน ไฟล์ สตรีม ไฟล์เข้ารหัส บวกการแก้ในที่หรือผ่านโคลน atomic IXLSReportTable, IXLSReportCursor, provider/resolver แบบ lazy ต่อ run และดัชนี relation คีย์ผสม มอบแหล่งข้อมูลเสมือนหรือในหน่วยความจำที่ใช้ซ้ำได้ โดยไม่บังคับโหลดตารางที่ไม่มีใครอ้างถึง ส่วน TXLSReportTableFactory ประกอบ view แบบ top, projection, count, minimum, aggregate, union, split และ hash-join โดยไม่คัดลอก payload แถวระหว่างทางแบบเต็ม ๆ แกลเลอรี Delphi และ C++Builder ที่รันได้ สาธิต data context, compiled runner, แผ่น diagnostics, LastResultและเส้นทาง RunToFile ชุดเดียวกัน
  • report band เชิงโครงสร้างแบบมีชื่อ: TXLSCompiledReportBand resolve defined name สี่เหลี่ยมที่ scope สมุดงานหรือแผ่นงานอย่างเป๊ะ และขยายลงล่าง ไปขวา หรือทั้งสองแกน จากสแนปชอตแถว/คอลัมน์แบบมีขอบเขตหนึ่งรอบ คงชนิดค่า, สูตร mixed-reference, การผสาน, กฎ, validation, ไฮเปอร์ลิงก์, คอมเมนต์, ภาพวาด และข้อมูลเมตา layout แถว/คอลัมน์แบบชัดเจน พร้อมปฏิเสธโครงสร้างบางส่วนที่ไม่รองรับก่อน mutate
  • การคัดลอกช่วงและ report band ที่เกิดซ้ำใช้การค้นหา suffix ของ defined name ตาม scope ซ้ำอีก โดยยังคงตั้งชื่อด้วยชื่อว่างตัวแรกที่พบ หลังมีการลบ เปลี่ยนชื่อ หรือเปลี่ยน scope
  • report band ตาราง Excel แบบขยายได้ผ่าน TXLSCompiledTableReportBand ใช้สแนปชอต cursor แบบมีขอบเขตชุดเดียว ขยายแถว data-template เดียว โดยยังเก็บ header, total, ช่วงตาราง/AutoFilter, สถานะ filter/sort, ข้อมูลเมตาคอลัมน์, สูตร calculated/total, สไตล์, structured reference และอ็อบเจ็กต์แผ่นงานที่เกี่ยวข้อง ผลว่างที่แทนได้จะเอาแถว data-template ออก ส่วนตารางที่ backed ด้วย query และ layout ที่ไม่ปลอดภัยถูกปฏิเสธก่อนเขียนเชิงโครงสร้าง
  • report band ช่วงและตาราง Excel แชร์ ErrorMode, StrictDataAccess, RuntimeLimitsและ diagnostics LastResult แบบเปลี่ยนแปลงไม่ได้ WriteAndContinue เก็บความล้มเหลวของแถวที่กู้คืนได้แบบชัดเจนเป็นข้อความ literal พร้อมแถว input และที่อยู่เอาต์พุตจริง แล้วทำเป้าหมาย/แถวที่เหลือต่อ ส่วนความล้มเหลวเชิงโครงสร้างและทรัพยากรที่ร้ายแรงจะ rollback การขยาย
  • สแกนเซลล์และแถวด้วย callback แบบ raw value หรือข้อความแสดงผล, ค้นหา/แทนที่ตาม template และการเขียนแบบกลุ่ม
  • การจัดการ scratch file แบบรวมศูนย์ (ไฟล์ temp ที่ลงทะเบียนถูกกวาดตอน finalize), การเช็คถอดรหัสหลังเขียน VerifyEncryptedSave แบบเลือกใช้ และค่าคงที่ grid limit ต่อรูปแบบ พร้อม event OnExportLimit บนตัวส่งออก dataset
  • helper ของ data validation พร้อม dropdown รายการจาก array สตริงในคำสั่งเดียว, IME mode แบบมีชนิดที่แชร์กันข้าม XLS คลาสสิกกับ XLSX, สูตรตารางที่คง attribute array เป็นอิสระ, ส่วนขยาย conditional format, การส่งออก HTML ที่ตั้งค่าได้พร้อม CSS class รวมศูนย์ และการบันทึก/โหลดแบบเข้ารหัส AES — ECMA-376 Standard Encryption (AES-128) เร่นด้วย AES-NI บวกการอ่าน Agile Encryption เริ่มต้นของ Excel (derive คีย์ SHA-512, AES-128/192/256)
  • ตัวส่งออก HTML แบบคลาสสิกและ XLSX ใช้สแนปชอตเรขาคณิต xlsrgbHtml ที่เป็นของ operation แปลงความกว้างอักขระผ่านเมตริก maximum-digit-width ของฟอนต์ Normal เป็นความยาว CSS คงที่ ใช้แคชมีขอบเขตชุดเดียวต่อ operation หลายแผ่น เปิดเผยสแนปชอตที่ active เพื่อ diagnostics และคงมิติแผ่นงานที่เก็บไว้
  • การประเมิน conditional format XLSX แบบเตรียมไว้ล่วงหน้า พร้อมการซ้อน priority และ StopIfTrue , สูตรสัมพัทธ์, สถิติหลายพื้นที่ที่แชร์กัน, กฎ Top/Bottom และค่าเฉลี่ย, ค่าซ้ำ/ไม่ซ้ำ, ช่วงวันที่แบบสัมพัทธ์, differential style ที่รู้เรื่องธีม, color scale, data bar มีทิศทาง และตระกูล icon set ในตัวครบทุกตระกูล
  • การเปิด XLSX แบบอดทน: namespace prefix ถูก normalize ระหว่าง parse แผ่นงาน แผนภูมิ ภาพวาด และคุณสมบัติเอกสารที่ผูกกับ namespace ที่ไม่ canonical หรือแบบ ISO 29500 strict จึงโหลดเหมือนไฟล์ธรรมดา และแผ่นงานที่แถว/เซลล์ลืม attribute ตำแหน่ง จะเดาตำแหน่งเซลล์ตามตัวก่อนหน้าตามลำดับการสแกน
  • เอาต์พุต Open XML แบบ strict ผ่าน StrictOOXML: แพ็กเกจ XLSX ทั้งก้อน — แผ่นงาน, shared strings, สไตล์, ธีม, ภาพวาด, แผนภูมิ, คอมเมนต์, คุณสมบัติเอกสาร และ part ที่เก็บรักษา — ถูกบันทึกตาม ISO/IEC 29500 strict พร้อม vocabulary purl.oclc.org และชนิด relationship แบบ strict resolve ตอนเปิดเหมือนแบบ transitional
  • การเปิด XLSX ทั้งสมุดงาน stream entry ZIP ของแผ่นงานเข้า inflater และ XML reader ของ worker โดยตรง ไม่เก็บสำเนา staging ของ XML ที่ inflate ไว้ และจำกัดหน่วยความจำ input ของแผ่นงานชั่วคราวไว้เท่า worker parse ที่กำลัง active
  • direct reader แบบ streaming (TXLSDirectReader) สแกน .xlsx / .xlsm ทีละเซลล์ พร้อม event ต่อเซลล์/ต่อแผ่นและหน่วยความจำเกือบคงที่สำหรับสมุดงานใหญ่มาก รายงานค่า ชนิด ข้อความสูตร และดัชนีสไตล์ของแต่ละเซลล์ พร้อมตรวจจับวันที่ตามออปชัน การยกเลิกก่อนเวลาที่แพร่เข้า ZIP input และการ decompression, row-range pushdown และการ project คอลัมน์แบบ constant-time ก่อนถอดรหัสค่า event layout แบบเลือกใช้ เปิดเผยมิติแผ่นงาน ขนาดเริ่มต้น, column span, ข้อมูลเมตาแถว, frozen/split pane และช่วงที่ผสาน ก่อนถึงเซลล์ที่เกี่ยวข้อง parsing ขนานแบบมีขอบเขต stream inflater แผ่นงานของ worker เข้าคิว producer-consumer ที่จัดงบอิสระกัน โดยคงลำดับ callback บนเธรดผู้เรียก การคง rich string เปิดเผย formatted run, phonetic range และ property ฟอเนติก และ store shared string แบบมีขอบเขต เก็บตารางเล็กไว้ในหน่วยความจำ ขณะย้ายตารางและ payload ใหญ่ไป storage temp แบบ indexed ที่ลบตอนปิด
  • direct writer แบบ streaming (TXLSDirectWriter) ผลิตสมุดงาน .xlsx ทีละเซลล์ ปล่อยแต่ละแผ่นงานเข้าแพ็กเกจตรง ๆ เมื่อแถวมาถึง ไฟล์ใหญ่มากจึงถูกสร้างด้วยหน่วยความจำเกือบคงที่ ครอบคลุม shared string แบบ inline หรือ deduplicate, rich string พร้อม formatted/phonetic run, ตัวเลข, Boolean, วันที่, สูตร, cell style ระดับแพ็กเกจที่ใช้ซ้ำได้พร้อม handle โคลน, ฟอนต์/สีเติม/เส้นขอบ/number format แบบ deduplicate, การเน้นฟอนต์, underline, outline, shadow, fill pattern 19 แบบ, สไตล์เส้นขอบ 14 แบบครบ 5 ด้าน, การจัดแนวแนวนอน/แนวตั้ง, wrap, ย่อ, ย่อหน้า, การหมุน, quote prefix, การป้องกันแบบ locked/hidden, number format ในตัวและแบบกำหนดเอง, ความกว้างคอลัมน์, ความสูงแถว, แถว/คอลัมน์ซ่อน, ช่วงที่ผสาน, ช่วง AutoFilter ของแผ่นงานและตาราง พร้อม filter ค่า/ว่าง/กลุ่มวันที่/กำหนดเอง/dynamic/top-bottom และสถานะการเรียง, การป้องกันแผ่นงานพร้อมสิทธิ์ละเอียด, metadata รหัสผ่านแบบเก่าหรือใหม่กับ protected range ที่แก้ไขได้, การป้องกันโครงสร้างสมุดงานและหน้าต่าง, frozen pane, สีแท็บแผ่น, view แผ่นแบบขวาไปซ้าย, toggle การแสดงผลของ view แผ่น, margin หน้า, ข้อความ header/footer, ตัวเลือกการพิมพ์, page setup, fit-to-page, page break แบบกำหนดเอง, ไฮเปอร์ลิงก์แผ่นงานข้ามหลายแผ่น, defined name ระดับสมุดงานและระดับแผ่น, defined range ที่สร้างให้, print area, แถว/คอลัมน์ title ที่พิมพ์ซ้ำ, data validation พร้อม prompt และ error alert, conditional formatting มี operator ค่าเซลล์ 8 แบบ, expression, จับคู่ข้อความ, จัดอันดับ top/bottom, ค่าเฉลี่ย, ซ้ำ/ไม่ซ้ำ, predicate ว่าง/error, data bar, color scale สอง/สามสี, ตระกูล icon set 17 ตระกูล, differential font/fill style, การคุม priority และ stop-if-true, part ตารางสไตล์ Excel พร้อมชื่อคอลัมน์, flag แถว header/total, คอมเมนต์ตาราง, label คอลัมน์แถว total และฟังก์ชัน, สูตร calculated column, สูตรแถว total และตัวเลือกการแสดง table style บวกช่องทาง side ของแผ่นปัจจุบันสำหรับคอมเมนต์แบบคลาสสิก, แหล่งรูปแบบ stream, DrawingML ที่ anchor ไว้, แผนภูมิแบบมีชนิดที่ backed ด้วยสูตร และ ChartML ที่ผู้เรียกให้มา
  • overflow continuation แบบเลือกใช้ (AutoSplitRows) แยก export ข้ามแผ่น <name>_2 เมื่อแถวที่เกินลิมิตแผ่นงานมาถึง และ FillTableCalculatedColumn ผลักสูตรคอลัมน์ตารางลงทุกแถวข้อมูลแบบที่ Excel ตอนเขียนทำ
  • patch แผ่นงานในที่ผ่าน BeginPatch: ตัวเขียนแบบ streaming เขียนแผ่นงานเดียวของแพ็กเกจที่มีอยู่ใหม่ โดย part ที่ไม่ถูกแตะถูกคัดลอกข้ามไปด้วยไบต์บีบอัดเดิมทุกไบต์ — เปลี่ยนแผ่นข้อมูลหรือเติมแผ่นใหม่ได้โดยไม่ต้องเขียน template ใหม่หมด
  • อ็อบเจ็กต์ camera ผ่าน AddCamera: รูปสแนปชอตแบบมีชีวิตที่ bind กับช่วงเซลล์ ตามส่วนขยายภาพวาด camera tool ตามเอกสาร binding นี้ round-trip ผ่านการบันทึกและการเปิดใหม่
  • attachment ใน PDF ผ่าน AddAttachment — ไฟล์ขึ้นไปกับ export เป็น entry /EmbeddedFiles พร้อม name tree และ IXLSPDFAttachmentSource ป้อน payload แบบ lazy ครั้งเดียวต่อการบันทึกผ่าน spool ที่จำกัด การประกอบรอบสุดท้าย stream อ็อบเจ็กต์เรียงไปที่ปลายทาง payload จึงคัดลอกเป็น chunk คงที่พร้อม indirect length object และพีคหน่วยความจำแบนราบ
  • เอาต์พุต PDF/A-1a, 1b, 2a, 2b, 3a และ 3b แบบชัดเจนผ่าน PDFAProfileรวมกฎ identification, การจัดการสี, tagging, attachment และ validation แบบ atomic เฉพาะ profile ส่วน UsePDFA ยังเป็นสวิตช์ความเข้ากันได้สำหรับ PDF/A-2b
  • การ export PDF ทำงานได้ทั้ง layout แบบคลาสสิกหรือ layout PDF 1.5 แบบเลือกใช้ พร้อม object stream ที่บีบอัดและ cross-reference stream แบบไบนารี (UseXRefStream) เพื่อไฟล์ที่เล็กลง
  • การ export PDF รองรับ callback progress begin/page/end ที่ใช้ซ้ำได้พร้อมการยกเลิกและไม่ commit stream บางส่วน บวก annotation คอมเมนต์ Unicode ที่วางตามตำแหน่งเซลล์ได้ตามออปชัน ซึ่งอยู่ร่วมกับหน้า comments-at-end ได้
  • gradient และ transparency ใน PDF ใช้ shading แบบ axial/radial เนทีฟพร้อม multi-stop function ที่เย็บกัน, alpha mask ต่อ stop, cell fill pattern, เงาของรูป, clipping ระดับหน้า และแคช resource ระดับเอกสาร profile PDF/A ที่เลือกจะบังคับข้อจำกัดกราฟิกของตัวเองก่อน commit เอาต์พุต
  • chain font fallback แบบรู้เรื่องสไตล์ของ PDF ผ่าน SetFontFallbackChain, AddFontFallbackและ ClearFontFallbackChains เลือก face ที่ฝังไว้ตามตระกูลต้นทาง ระดับสไตล์ และความครอบคลุม glyph, cache face กับ selection ที่โหลดไว้, คง scalar เสริมกับ grapheme cluster ข้าม run, แยกลำดับ Unicode ที่แชร์ glyph ด้วย mapping CID และปฏิเสธเอาต์พุต PDF/A แบบ atomic แทนการใช้ฟอนต์ที่ไม่ได้ฝัง
  • TXLSPageImageExporter สร้าง pagination ครั้งเดียวและ export หน้า XLS/XLSX ที่เลือกแบบทยอยเพิ่มเป็น PNG หรือ JPEG พร้อม DPI, สเกล, คุณภาพ, ความคืบหน้า, การยกเลิก และอายุ bitmap ต่อหน้าที่ตั้งได้ ExportRange เขียนสี่เหลี่ยมเซลล์แน่น ๆ หนึ่งชิ้น และ event ก่อน/หลังวาดเปิดเผย canvas หน้าจริงผ่าน context แบบอ่านอย่างเดียว ที่มีขอบเขต pixel, ขนาดหน้า, ความละเอียด, สเกล, เลขหน้า และแผ่นงานต้นทาง ยิงเป๊ะหนึ่งครั้งต่อเฟรมที่เรนเดอร์ รวมถึงเฟรม TIFF หลายหน้า
  • TXLSCellImageExporter วัด เรนเดอร์ และบันทึกสี่เหลี่ยมเซลล์แบบคลาสสิกหรือ XLSX เป็นรูปกะทัดรัดหนึ่งรูป ไร้ artifact ของ pagination พร้อม resolution, สเกล, รูปแบบ และ JPEG quality ที่ตั้งได้, พื้นหลัง PNG โปร่งใสหรือมีสี, สวิตช์อ็อบเจ็กต์/gridline/ขอบเซลล์อิสระจากกัน, งบ pixel และ byte ที่ validate ก่อนจัดสรร และการบันทึกไฟล์ด้วยการแทนที่ในโฟลเดอร์เดิมแบบ atomic ที่ไม่ทำให้เป้าหมายเดิมเสียหายแม้ล้มเหลว
  • การ export ODS เขียนสูตรเซลล์เป็น OpenFormula มาตรฐานรูป of:= พร้อม passthrough msoxl: สำหรับ reference ข้ามแผ่น แล้ว round-trip กลับเป็นข้อความสูตรของ Excel
  • ความสูงแถวและสไตล์เซลล์ว่างของ ODS ที่เกิดซ้ำใช้ช่วงแบบกระชับ เอาต์พุต ODS คงความสูงแถวกับ tail ที่มีสไตล์ที่ซ้ำ ๆ ไว้ ขณะที่การแก้ไขรายแถว การล้าง การคัดลอกแผ่นงาน การเลื่อนแถว การ tiling และการ export เป็น XLSX ล้วนคงความสูงที่มีผลจริงไว้
  • การจ่ายแถวแบบ pull (OnNeedRow + RunRows) ขับตัวเขียนแบบ streaming จาก data pipeline ทีละแถว
  • แผ่นงานขวาไปซ้าย mirror ในการ export PDF และพลิกผ่าน dir="rtl" ใน HTML ปิดวง round-trip ของ flag การแสดงผล
  • โหมด zero-display ของแผ่นงานซ่อนเลขศูนย์จริง รวมผลสูตร ค่าสกุลเงิน และศูนย์ของวันที่ฐาน ข้ามทุกตัว viewer และ export ที่แสดงผลได้ ก่อนการจัดรูปแบบตัวเลขหรือการวัดข้อความ โหมดแสดงสูตรมีลำดับความสำคัญเหนือกว่า visual ของ conditional format และไฮเปอร์ลิงก์ยังทำงาน ส่วนค่าที่เก็บไว้ ข้อความที่จัดรูปแบบแบบสาธารณะ เอาต์พุต CSV และ ODS คงสัญญาเดิมไว้
  • โหมด streaming ติดตามความกว้างแบบเลือกใช้ (TrackColumnWidths) จัดแผ่นงานลงหน่วยความจำเพื่อให้ไฟล์ที่จบแล้วพก hint <dimension> ของ used-range และความกว้างคอลัมน์ที่จัดตามค่ายาวสุดที่เคยเห็นต่อคอลัมน์ ประมาณ autofit สำหรับข้อมูลที่รู้จักได้เฉพาะตอนมันไหลผ่าน
  • การแก้ไขเชิงโครงสร้างแถว/คอลัมน์ของ XLSX ที่ปลอดภัยต่อ reference อัปเดตสูตร, defined name, กฎ, ลิงก์, ภาพวาด, การตั้งค่าการพิมพ์, protected range, anchor คอมเมนต์คลาสสิก/แบบเกลียว, sparkline, pivot source/view แบบมีชนิด และ reference ส่วนขยายที่เก็บไว้ซึ่งจำได้ ใน transaction มีเกราะป้องกันชุดเดียว พร้อม API participant ที่เรียงลำดับสำหรับ metadata ฝั่งแอปพลิเคชัน
  • XML tree แบบเข้าถึงสุ่มที่กระชับ (TSimpleDomReader) สร้างจาก pull reader ตัวเดียวกันในรอบเดียว เอาไว้ query ข้อมูลเมตาของสมุดงาน, relationship, ธีม และ part อื่นของแพ็กเกจด้วย path QName หรือ local-name ที่ตามตัวพิมพ์
  • การประเมินสูตรทีละขั้นผ่าน TXLSFormulaTracer พร้อม transition operand stack แบบเป๊ะ ๆ บวก diagnosis แบบ interactive ผ่าน TXLSFormulaDebugger ที่เปิดเผยโหนดที่ parse แล้ว, ค่า operand, ลำดับการประเมิน, dependency ระดับเซลล์/ช่วง, ทางเลือก branch แบบ lazy, expression ที่ถูกข้าม และที่มาของ error ที่แพร่ออกมา
เวอร์ชัน 2.362.0

ชุดความสามารถครบวงจรด้านสมุดงาน รายงาน และการเรนเดอร์

รุ่นปัจจุบันขยาย API ด้านสมุดงาน รายงาน และการเรนเดอร์ที่รองรับ ด้วยเส้นทาง execution ที่มีขอบเขตชัดเจนและกฎความปลอดภัยของรูปแบบไฟล์ที่ระบุชัดเจน

รูปแบบสมุดงานและการคำนวณ

  • XML Maps และ schema binding ระดับเซลล์เดียวที่แก้ไขได้ผ่าน TXLSXXmlMaps และ TXLSXXmlCellBindingsรวมถึง round-trip ของ relationship และการ validate ก่อนบันทึก
  • สถานะสมุดงานแบบหลายหน้าต่างที่เรียงลำดับได้ผ่าน TXLSXWorkbookViewsครอบคลุมแท็บ active, เรขาคณิต, การมองเห็น, flag การแสดงผล, ส่วนขยาย และการ remap ดัชนีแผ่นงานอย่างปลอดภัย
  • การเลือกหลายพื้นที่และเซลล์ active ต่อบานหน้าต่างแบบอิสระจากกันสำหรับทั้ง XLS และ XLSX พร้อม remap เชิงโครงสร้างและการปฏิเสธช่วงที่ไม่ถูกต้องแบบ atomic
  • formula token แบบ lossless ที่เป็นของผู้เรียกผ่าน TXLSFormulaTokenStream, ParseFormulaTokens, GetFormulaTokens, FormulaTokensToTextและ SetFormulaTokens
  • การ freeze สูตรของ XLS แบบคลาสสิกจัดประเภท reference BIFF ที่ compile แล้วโดยไม่ decompile ข้อความสูตร แปลงเฉพาะ reference สมุดงานภายนอกที่ยืนยันแล้วในโหมด OnlyExternal คงสูตรที่ไม่ชัดเจนไว้ และ freeze กลุ่ม array แบบ atomic โดยผล literal string ไม่สูญหาย
  • สูตรสมุดงานภายนอกของ XLSX ใช้ lexer numeric-slot ที่เข้าใจไวยากรณ์ตัวเดียวสำหรับการแปลงแบบเข้ม, diagnostics, recalculation, การคัดลอกข้ามสมุดงาน และการบันทึกที่สร้างให้ โดย normalize ความเข้ากันได้ของชื่อไฟล์เฉพาะเมื่อเป้าหมายที่ลงทะเบียนไว้ตรงกันเพียงตัวเดียว
  • TXLSXExternalLink เปิดเผย relationship ID ต้นทาง, slot แบบ 1-based และชนิดลิงก์ workbook, DDE, OLE หรือที่ยังไม่ resolve เมื่อเป้าหมายหรือรายการแผ่นงานเปลี่ยน binding ภายนอกที่ compile ไว้จะ invalidate ผ่านการอัปเดต revision แบบ constant-time
  • ConvertExternalDefinedNamesToRefErrors แทนที่นิยามสมุดงานภายนอกที่ยืนยันแล้วด้วย #REF! แบบเนทีฟใน XLS คลาสสิกและ XLSX แบบ atomic โดยยังคงเอกลักษณ์ชื่อ, scope, การมองเห็น, คอมเมนต์, metadata แบบ macro และ built-in, attribute XLSX ที่ไม่รู้จัก, สูตรเซลล์ปกติ และ part ลิงก์ภายนอกไว้ครบ
  • การเรียงแถวหรือคอลัมน์แบบ stable ด้วย TXLSSortFormulaModeรองรับคีย์แนวนอน, comparer แบบกำหนดเอง และให้เลือกระหว่างคง dependency เชิงตรรกะไว้กับย้ายสูตรตามกายภาพ
  • ฟอนต์, number format, สไตล์ XF และสูตร BIFF2 ถึง BIFF4 ที่แก้ไขได้ ถูกแปลงเข้าโมเดลสมุดงานและการคำนวณปัจจุบันตอนโหลด
  • facade callback TXLSForwardReader ตัวเดียวสำหรับ XLS, XLSX, CSV และ TSV พร้อม projection ระดับ backend, ขอบเขตแถว, สถานะการมีสูตร, การกดข้อความสูตรแบบเลือกได้, การตรวจจับรูปแบบ และการยกเลิก
  • custom view แบบมีชนิดสำหรับบานหน้าต่าง การเลือก ตัวกรอง page setup และ page break ขณะที่ระเบียน BIFF ที่ไม่รู้จักยังเก็บ payload เดิมไว้
  • property OLAP แบบมีชนิด, selector ตารางเว็บ, field แบบความกว้างคงที่ และ connection parameter พร้อมเนื้อหาส่วนขยายที่เก็บไว้
  • AnalyzeFormulaIssues สำหรับฟังก์ชันที่หาย, reference สมุดงานภายนอก และองค์ประกอบวงจร dependency ที่ชี้เป๊ะ
  • registry UDF ระดับ global และระดับสมุดงานที่ thread-safe มี override ระดับท้องถิ่น, lookup เฉลี่ย O(1) และการเรียก handler นอกล็อก
  • XLSBidiVisualOrder สำหรับข้อความผสมภาษาอาหรับหรือฮีบรู, ข้อความละติน, ตัวเลข, combining mark และเครื่องหมายวรรคตอนแบบ mirror โดยไม่แตะข้อความเชิงตรรกะของเซลล์
  • กลยุทธ์ AutoFit เซลล์ที่ผสานที่ให้สมาชิกแรกหรือสมาชิกสุดท้ายรับการเติบโต หรือกระจายให้ทั่วทั้ง span สำหรับทั้ง XLS และ XLSX
  • การเก็บรักษา macro sheet ของ Excel 4 แบบมีชนิด บวกผลสแกน ScanMacroCommands แบบตรวจอย่างเดียวพร้อมตำแหน่งแผ่นงาน
  • รองรับการคำนวณ ISOMITTED, ARRAYTOTEXT, VALUETOTEXT, PDURATIONและ RRI ด้วยพฤติกรรมการเก็บและ error ที่ตรงกับ Excel
  • สรุปแผ่นงานแบบจัดกลุ่มผ่าน TXLSXWorksheet.Subtotalรวมสูตรที่แทรกเข้าไป, grand total ที่ปรับได้, การจัดรูปแบบที่มองเห็นแบบสืบทอด และลำดับชั้น outline
  • การตรวจสไตล์ effective โดยไม่ materialize ผ่าน GetCellVisibleFormat บวก validation ระดับ candidate และ commit แบบ atomic ผ่าน CheckDataValidation
  • การเปิด XLS แบบคลาสสิกที่อ่านเฉพาะ metadata หรือเฉพาะแผ่นที่เลือก ใช้ offset BOUNDSHEET , storage SST spill แบบมีขอบเขต และสัญญาอ่านแบบ forward ชุดเดียวที่แชร์กับ XLSX, CSV และ TSV
  • dynamic array stream เข้าสู่ aggregate สเกลาร์ตรง ๆ, lookup ที่ซ้ำ ๆ ใช้แคชช่วงแบบมีชนิดที่เพิ่มทีละส่วนซ้ำได้ และ formula token ที่เปลี่ยนแปลงไม่ได้แชร์อ็อบเจ็กต์ stateless ข้ามการ compile
  • named style เก็บ part รูปแบบที่ผูกไว้และ override ท้องถิ่น ขณะที่ table style ในตัวทุกแบบทั้ง light, medium และ dark resolve เป็นรูปแบบ effective ที่เส้นทางแก้ไขและ export ใช้จริง
  • facade ภาพวาด unified จัดกลุ่มหรือแยกกลุ่มอ็อบเจ็กต์ DrawingML และเรียงลำดับใหม่ของรูปภาพ แผนภูมิ กล่องข้อความ anchor ที่เก็บไว้ และกลุ่มซ้อนกันโดยไม่สูญ relationship
  • TXLSFormatSnapshot จับรูปแบบคลาสสิกแบบครบถ้วนแยกจากสมุดงานต้นทาง และ IXLSRange.ApplyFormat นำไปใช้กับเซลล์ แถว หรือคอลัมน์
  • สมุดงานคลาสสิกและ XLSX เปิดเผย API SaveSemanticSnapshot แบบ streaming และ ComputeSemanticHash แบบ SHA-256 เพิ่มทีละส่วนที่เหมือนกัน พร้อม profile Content และ SecurityComplete บวกตัวเลือก viewer-state, volatile metadata และ formula cache แบบชัดเจน
  • แผ่นงาน XLSX ใหม่เก็บการเขียน bulk แบบมีชนิด row-major ที่เข้ากันได้ใน storage แบบ packed RLE, ตอบ query การมีอยู่และสถิติ storage โดยไม่ materialize และขยายเป็นอ็อบเจ็กต์เซลล์ stable เพียงครั้งเดียวเมื่อการเข้าถึงระดับอ็อบเจ็กต์ต้องใช้
  • cell store และคอลเลกชันแผ่นงานทั้งฝั่งคลาสสิกและ XLSX เปิดเผย structural generation แบบอิสระจากกัน reader ที่ทำงานยาวจึงตรวจจับการเปลี่ยน topology ได้โดยไม่นับการแก้ไขค่า สูตร รูปแบบ การเปลี่ยนชื่อ หรือการ activate เป็นการ invalidate เชิงโครงสร้าง
  • cell handle คงสถานะสไตล์ default แบบไม่ต้องจัดสรรหน่วยความจำ และเซลล์ว่างที่ต่างกันแค่สไตล์เดียวกันแชร์ payload แบบนับ reference พร้อม isolation แบบ copy-on-write สำหรับการแก้ไขท้องถิ่นภายหลัง พร้อมจำนวนไบต์ที่ประหยัดได้วัดออกมาเป็นตัวเลขในสถิติ storage

รายงานแบบ compiled และการประกอบข้อมูล

  • TXLSCompiledReportTemplate compile placeholder ครั้งเดียวครอบคลุมเซลล์, rich text, คอมเมนต์, threaded comment, ไฮเปอร์ลิงก์, ภาพวาด, แผนภูมิ, header, footer, ชื่อแผ่นงาน, defined name และคุณสมบัติเอกสาร
  • TXLSCompiledReportBand ขยาย band แถว คอลัมน์ และ cross-tab จาก defined name บนสแนปชอตข้อมูลแบบผ่านรอบเดียวที่มีขอบเขต โดยคงสูตร อ็อบเจ็กต์ที่ขึ้นต่อกัน และ metadata แกนแบบชัดเจนไว้
  • TXLSCompiledTableReportBand ขยาย template ตาราง Excel แบบหนึ่งแถวโดยคง header, total, filter, การเรียง, สูตร, สไตล์, structured reference และผลศูนย์แถวจริงแบบปลอดภัยไว้
  • IXLSReportTable, IXLSReportCursor, IXLSReportRandomAccessTableและ TXLSReportMemoryTable ให้สัญญาเดียวกันสำหรับแหล่งข้อมูลเสมือนและแหล่งข้อมูลในหน่วยความจำ
  • TXLSReportRelationIndex สร้าง bucket คีย์ compound แบบมีชนิดที่แม่นยำครั้งเดียวเพื่อ lookup master-detail เฉลี่ย O(1) โดยไม่คัดลอก payload แถว
  • IXLSReportTableProvider และ TXLSReportDataContext ลงทะเบียนตารางแบบชัดเจนและแบบ lazy ส่วน BeginRun สร้าง IXLSReportDataSession ที่แยกจากกันด้วย hash lookup แบบไม่สนตัวพิมพ์, negative cache, cache provider-error แบบ deterministic และการตรวจ recursion ของ alias เดียวกันทันที template ที่ compile แล้ว, runner, band ช่วง และ band ตาราง Excel ใช้หนึ่ง session ต่อ run เชิงตรรกะโดยอัตโนมัติ pass PreprocessAndRun ทั้งสองแชร์สแนปชอตเดียวกัน, run ขนานยังแยกจากกัน และทุกเส้นทางไม่ว่าสำเร็จ ยกเลิก หรือล้มเหลว จะคืนสแนปชอตก่อน return เสมอ
  • TXLSReportDataRequest และ IXLSReportDataResolver เพิ่ม request แบบมีชื่อหรือของผู้ใช้ พร้อม parameter แบบมีชนิดที่เรียงลำดับ, metadata ของแหล่งข้อมูล, การควบคุม run แบบอ่านอย่างเดียว และผลแบบชัดเจนทั้ง unhandled, resolved, not-found หรือ data-error resolver ลงทะเบียนด้วย provider key แบบไม่สนตัวพิมพ์เพื่อ dispatch แบบ O(1), provider รุ่นเก่ายังใช้ได้ผ่าน adapter, ตารางแบบชัดเจนยังมีอำนาจสูงสุด และ run จะปฏิเสธ fingerprint ที่ขัดกันของ alias เดียวกันก่อนเรียก resolver ตัวที่สอง
  • TXLSReportDataLimits จำกัดขอบเขต alias ที่ cache ไว้, provider แบบมีชื่อและรุ่นเก่า, schema ตาราง, ชื่อ, parameter, string และข้อความ error พิกัดต้นทางที่เสียรูป, control character, ชื่อ parameter ซ้ำ, container Variant ที่ไม่รองรับ, ชุดผลที่ผสมกันไม่ได้, recursion และการยกเลิกกลางทาง จะ fail ก่อน commit ลงเป้าหมาย ส่วนการยกเลิกจะลบ cache entry ที่ยังไม่จบออกเพื่อ retry สะอาด ๆ
  • TXLSReportTableFactory จัด cursor แบบ lazy ทั้ง top, projection, union และ split บวกนับแถว, ค่าต่ำสุด, aggregate และ hash join ที่คงแถวซ้ำไว้
  • TXLSReportQueryProvider เปิดเผยเฉพาะนิยาม query แบบอ่านอย่างเดียวที่ลงทะเบียนไว้ให้ template และส่ง parameter แบบมีชนิดพร้อม timeout ที่จำกัดไปที่ executor ของ host
  • TXLSCompiledSheetReportBand และ TXLSCompiledOverflowReportBand สร้างแผ่นงานต่อเรกคอร์ดที่รู้เรื่อง dependency และแผ่นงานต่อเนื่องแบบมีขอบเขต จาก cursor แบบ forward
  • TXLSReportIncludeLibrary resolve include แบบมีชื่อที่เรียกซ้อนกัน รายงานวงจรแบบ deterministic และ freeze เป็น library ที่เปลี่ยนแปลงไม่ได้แต่ใช้ซ้ำได้
  • เงื่อนไข, lookup, regular expression และสูตร dynamic ของรายงานแบบ compiled ใช้ expression node ที่ parse แล้วและดัชนีคอลัมน์ที่ resolve แล้วซ้ำ
  • TXLSReportDynamicFormat และ TXLSReportFormatEvent apply number format, ความสูงแถว และความกว้างคอลัมน์ที่รู้เรื่องเรกคอร์ด ที่ระดับความละเอียดของเป้าหมายที่ compile แล้ว
  • IXLSReportImageDataProviderV2 และ TXLSReportImageBinder resolve เป้าหมายรูปภาพแบบมีชนิดจาก bytes ที่มีขอบเขตหรือ stream ที่เป็นเจ้าของ ภายใต้บริบทที่ stable ทั้งแผ่นงาน, band, ตาราง, logical row, cursor row, แถวปัจจุบันแบบอ่านอย่างเดียว, anchor, transform, การยกเลิก และขีดจำกัดขนาด runner, generator, band ช่วง และ band ตาราง Excel bind แต่ละเป้าหมายตรง ๆ โดยไม่ต้องสแกนเซลล์ของแผ่นงานที่สร้างขึ้น
  • รูปในรายงาน V2 คำนวณขนาดกายภาพและ DPI จาก header PNG, JPEG, GIF, BMP, EMF หรือ WMF ที่มีขอบเขต รองรับการ fit ทั้ง Natural, Contain แบบกึ่งกลาง, Cover แบบครอป และ Stretch ปฏิเสธเรขาคณิต raster ที่ไม่ปลอดภัยก่อน mutate และคง offset เทียบ anchor ไว้ผ่าน round-trip XLSX และ ODS
  • IXLSXImageBlob และ TXLSXImageBlob ให้รูปที่ซ้ำกันแชร์ raster และ payload SVG แบบเปลี่ยนแปลงไม่ได้ก้อนเดียว พร้อม digest SHA-256 ที่คำนวณครั้งเดียวและ cache key ตามออปชัน XLSX และ ODS ใช้ media payload ที่แยกจากกันซ้ำข้ามแผ่นงานและคืน payload ที่แชร์กันตอนเปิดใหม่
  • การ rebind แผนภูมิที่รู้เรื่อง dependency แปลง series, สูตร, ชื่อ และ anchor เมื่อ band ของช่วงและแผ่นงานขยาย
  • TXLSCompiledReportRunner รายงาน phase begin, target, saving และ end รองรับการยกเลิก, เอาต์พุตทั้ง stream และไฟล์แบบ atomic, จำนวนที่ apply แบบเป๊ะ และ execution ที่ใช้ซ้ำได้ข้าม data session ที่แยกจากกัน ErrorMode เลือกได้ทั้งพฤติกรรมหยุดแบบเข้ากันได้หรือจัดการต่อกับความล้มเหลวแบบมีชนิดชัดเจน ไม่ว่าจะ data, provider, หารด้วยศูนย์ หรือ regular expression ไม่ถูกต้อง StrictDataAccess เปิดเผยข้อมูลที่หายแทนค่าว่างหรือจำนวน sentinel แบบเดิม และสแนปชอต LastResult ที่เปลี่ยนแปลงไม่ได้เก็บ runtime issue ที่เรียงลำดับและสถานะสุดท้ายไว้ข้ามการใช้ runner ซ้ำ
  • เอาต์พุตรายงานทั้ง stream, ไฟล์ และไฟล์เข้ารหัส ใช้ transaction แบบ staged ชุดเดียว ความล้มเหลวแบบ fatal, ยกเลิก, serialization, เขียน stream บางส่วน และแทนที่ไฟล์ จะคงปลายทางเดิมไว้ครบถ้วน ส่วนเอาต์พุตที่สำเร็จแบบไม่เข้ารหัสคงรูปแบบของสมุดงานต้นทาง และสแนปชอต rollback ของ stream ใหญ่จะล้นลง temp storage ที่จัดการแล้ว
  • เป้าหมายแบบ compiled ประเมินก่อนการจัดรูปแบบ dynamic แล้วค่อย commit เนื้อหา, number format, ความสูงแถว และความกว้างคอลัมน์แบบ atomic พร้อม rollback แบบเป๊ะ diagnostics ระดับเซลล์ที่กู้คืนได้จะล้างสูตร คง base style ที่เหลือไว้ และแชร์ derivative ฟอนต์แดง-พื้นเหลืองจาก pool ข้าม base font ที่เท่ากัน ขณะที่เป้าหมายนอกเซลล์ที่ปลอดภัยคงค่าเดิมไว้ และเป้าหมายเชิงโครงสร้างยัง fail-fast
  • TXLSReportRuntimeLimits จำกัดจำนวน issue ที่เก็บไว้ ความยาวข้อความที่ sanitize แล้ว และหน่วยความจำของ issue ก่อน mutate เป้าหมาย ข้อความเป็น single-line และ redact credential ที่พบทั่วไป ส่วน RuntimeDiagnosticsSheetName เขียนแผ่นงาน diagnostics แบบมีโครงสร้างหนึ่งแผ่นได้ตามออปชัน ซึ่ง round-trip ไปกับสมุดงานที่สร้าง
  • TXLSReportGenerator ครอบ lifecycle ทั้งการอ่านและการสร้างสำหรับ template ทั้งสมุดงาน ไฟล์ stream และไฟล์เข้ารหัส พร้อม event คู่, บริบทแผ่นงานที่ stable, การยกเลิกอย่างปลอดภัย, การแยกเอาต์พุตด้วย clone แบบ atomic และสัญญา error ที่กู้คืนได้กับผลแบบเปลี่ยนแปลงไม่ได้ เช่นเดียวกับ compiled runner
  • CloneRangeTo โคลนเซลล์ที่เลือกและ dependency ที่พกเอกลักษณ์ พร้อมการแปลง reference แบบผสม, preflight การทับซ้อน และการ tiling ซ้ำแบบ linear จากต้นทางคงที่
  • TXLSReportPaginationPlanner จัด footer คงที่, กลุ่ม keep-together, การแบ่งแถว, การผสาน span ที่คล้ายกัน และคอลัมน์รายงานแบบสมดุล
  • การวิเคราะห์รายงานแบบ compiled, execution แบบเข้ม และ WriteDiagnostics รายงาน placeholder ที่เสียรูปและค่าที่หาย พร้อมชนิดเป้าหมายและตำแหน่งแบบเป๊ะ
  • TXLSReportTemplateChecker และ TXLSReportTemplateMigrator ใช้ semantics ของ compiler ซ้ำเพื่อ validate template และแปลงรูปแบบ placeholder รุ่นเก่าที่รองรับ

เอาต์พุตแบบ accessible, vector, รูปภาพ และเว็บ

  • TXLSPDFTagMode และ DocumentLanguage สร้าง structure tree ของ PDF แบบอัตโนมัติ พร้อมตาราง แถว เซลล์ header/data ที่มีความหมายเชิงเนื้อหา, Figure รูป XLSX ที่มี alternative text แบบ Unicode, marked-content identifier หนาแน่นระดับหน้า, span ของเซลล์ที่ผสาน, parent tree ที่แม่นยำ และการแยก artifact สำหรับรูปตกแต่งและ drawing ที่ไม่มีความหมายเชิงเนื้อหา
  • TXLSPDFSignature รองรับ signature field แบบมองเห็นหรือมองไม่เห็น, appearance PNG แบบ contained, covered หรือ stretched, CMS data ที่ host จัดให้, digest callback, byte range แบบ patch และนโยบาย certification DocMDP แบบชัดเจน ไม่ว่าจะห้ามแก้ไข, กรอกฟอร์มกับเซ็นเท่านั้น หรือกรอกฟอร์ม เซ็น พร้อมใส่ annotation — โดยไม่เก็บ private key
  • TXLSPDFAProfile เลือก PDF/A-1a, 1b, 2a, 2b, 3a หรือ 3b พร้อม validate profile ก่อน commit เอาต์พุต ไฟล์แนบของ PDF/A-3 พกชื่อ Unicode, MIME type, คำอธิบาย, ขนาดไบต์, เวลาแก้ไข และ relationship แบบ Source, Data, Alternative, Supplement หรือ Unspecified ผ่าน overload AddAttachment แบบละเอียด
  • progress begin/page/end ของ PDF ที่ใช้ซ้ำได้พร้อมการยกเลิก ป้องกัน stream ปลายทางที่เสียบางส่วน
  • chain font fallback ของ PDF ที่รู้เรื่องสไตล์ cache ความครอบคลุม glyph และ face ที่ฝังไว้ ขณะคงอักขระเสริม, grapheme cluster และ mapping ตอนดึงข้อความ
  • shaping ข้อความซับซ้อนเชิงบริบท apply ligature, ตำแหน่ง combining mark, การเชื่อมอักษรอาหรับ และ mapping ของ source cluster ก่อนปล่อย glyph
  • gradient PDF แบบ axial/radial multi-stop เนทีฟ, alpha mask ต่อ stop, cell fill pattern, clipping และเงาของรูป ใช้ graphics resource ที่ cache ไว้ซ้ำ
  • คอมเมนต์เซลล์กลายเป็น text annotation แบบ Unicode ที่วางตำแหน่งใน PDF ได้ ขณะที่เอาต์พุต comments-at-end ยังใช้ได้เหมือนเดิม
  • TXLSSvgExport เรนเดอร์ช่วง แผ่นงาน สมุดงาน หน้า และอ็อบเจ็กต์ที่มีชื่อ พร้อมข้อความ vector, safe link แบบเลือกใช้, แผนภูมิ, shape และรูปภาพ page callback คืน SVG ที่สมบูรณ์หนึ่งชิ้นต่อครั้ง, ID prefix แบบ deterministic แยกเอกสารที่ฝังออกจากกัน และตัวเรนเดอร์หน้าที่แชร์กันวาด cell fill ของ Excel, เส้นขอบที่ยุบรวม, ฟอนต์กับการจัดแนวรายเซลล์, shrink-to-fit และเนื้อหาที่ล้นไปเซลล์ข้างเคียง
  • TXLSPageImageExporter ใช้ session pagination เดียวซ้ำขณะผลิตหน้า PNG หรือ JPEG ที่เลือกแบบทยอยเพิ่ม หรือเขียนหน้าที่เลือกแบบ atomic เป็น multipage TIFF บีบอัด LZW ก้อนเดียว
  • TXLSGraphicsBackend และเรขาคณิต pagination ที่แชร์กันทำให้ preview, print, PDF, SVG, image, HTML และการวางอ็อบเจ็กต์ตรงกันทั้งชุด ขณะที่ serializer คง encoding เฉพาะรูปแบบของตัวเอง
  • decoder EMF และ WMF แบบมีขอบเขต validate envelope ของระเบียนและปฏิเสธ escape record ก่อน replay subset ที่ปลอดภัยผ่านเรขาคณิต Canvas และ SVG ที่แชร์กัน: stack สถานะ DC, transform ของ window, viewport และ world, ตารางอ็อบเจ็กต์ pen, brush และ extended pen พร้อม stock object, สี่เหลี่ยม, วงรี, ลูกโซ่เส้น, polygon, เส้นโค้ง Bézier, path bracket ทั้ง fill, stroke และ pass ผสม, สี่เหลี่ยมมุมมน, arc, chord, pie และ angle arc, การเติมและกรอบ region, text run แบบมีขอบเขตพร้อมฟอนต์กับการจัดแนว และภาพ stretch-DIB ที่ encode ใหม่เป็น PNG clipping และระเบียนส่วนตัวอยู่นอก whitelist และจะ fail closed ลง fallback raster แบบมีขอบเขต
  • HTML exporter ทั้งฝั่งคลาสสิกและ XLSX ให้ spreadsheet view แบบชัดเจน พร้อมหัวแถวและหัวคอลัมน์ที่มีความหมายเชิงเนื้อหา และ hot tracking pure-CSS แบบมีชนิด ลิงก์ภายนอกแชร์ URI sanitizer ตัวเดียวกันที่ปฏิเสธเป้าหมายแบบ script, data, blob, file, UNC และ control character
  • แผนภูมิ date-axis ของ XLSX ใช้ serial ของสมุดงานเป็นพิกัดต่อเนื่อง เก็บ slot ความเข้ากันได้ leap day ปี 1900 เคารพระบบวันที่ 1904 และเลื่อน tick ตามวัน เดือน หรือปีปฏิทินจริงข้าม pagination ที่แชร์กัน การเรนเดอร์ SVG, PDF, image, preview, print, viewer และ HTML หน่วยที่ละไว้จะถูกอนุมานครั้งเดียวข้าม series ที่มองเห็นทั้งหมด ความหนาแน่นอัตโนมัติใช้ span ที่มองเห็น ความกว้างแกน ฟอนต์ label ที่วัดแล้ว number format และการหมุน ส่วน gridline major/minor ที่ตั้งไว้ใช้ tick collection แบบมีขอบเขตชุดเดียวกันซ้ำ
  • โมเดล date-axis ของ XLSX คงการมีอยู่แบบอิสระของหน่วยปฏิทิน base, major และ minor บวก flag automatic-category ของ date-axis องค์ประกอบ ChartML ที่ละไว้จึงยังถูกละไว้ต่อ ขณะที่หน่วยวันแบบชัดเจนและ Boolean false round-trip ได้ field ส่วนขยาย date-axis ของ Classic แบบมีชนิดเก็บค่าดิบกับ flag ทุกตัว และค่าที่ active แม็พเข้าโมเดลแกนของ XLSX ได้
  • แกน category หลายระดับคงแคช sparse แบบ leaf มาก่อนและช่วงสองมิติแบบ live, สืบทอด label ที่ละไว้โดยถือ label ว่างแบบชัดเจนเป็นเส้นแบ่ง, ผสาน label ที่เท่ากันเฉพาะภายใน span ของ parent ตัวเอง, เคารพลำดับกลับหลังและขวาไปซ้ายรวมถึง category ที่ซ่อน และเปิดเผย NoMultiLevelLabels สำหรับเอาต์พุตระดับเดียว
  • label ข้อมูลแผนภูมิที่มาจากเซลล์คงสูตรและแคช indexed แยกต่อ series, รีเฟรชข้อความแสดงผลของแผ่นงานต้นทางครั้งเดียวต่อการสร้างสมุดงาน, เก็บแคชภายนอกโดยไม่เข้าถึงแบบแอบแฝง, แปลงสูตรผ่านการคัดลอกแผ่นงานและการขยายรายงาน และเคารพการมองเห็นทั้งแบบแชร์และรายจุดข้าม pagination, SVG, PDF, image, preview, print, viewer และ HTML
  • สมุดงาน XLS คลาสสิกและ XLSX แชร์นโยบายแสดงอ็อบเจ็กต์สามสถานะแบบ lossless อ็อบเจ็กต์ที่ซ่อนถูกตัดออกก่อนขยายช่วงและงาน media, viewer เรนเดอร์ placeholder ที่มีชื่อแบบเบา ๆ และ exporter ทั้ง PDF, SVG, bitmap, print และ HTML เลือกเอาต์พุต placeholder ได้ ขณะที่ default ยังปล่อยอ็อบเจ็กต์เต็มรูป
  • layout แผนภูมิแบบ manual คงการมีอยู่แบบอิสระของ field และ token ต้นทางที่ไม่ถูกต้อง, resolve โหมด factor และ edge ด้วยการวางแบบคงขนาดที่มีขอบเขต, แยกเป้าหมาย plot ชั้นในกับชั้นนอก, แชร์เรขาคณิตของ title, legend, plot area และ axis title ข้ามเอาต์พุต pagination, SVG, PDF, image, preview, print, viewer และ HTML และแปลงตำแหน่ง ODF ที่รองรับผ่านระยะสัมบูรณ์ของแผนภูมิ
  • date axis ของ XLSX คง number format ของ label และสถานะ source-link, apply การจัดสไตล์ข้อความแกนและการหมุนตามเข็มนาฬิกา, เคารพทิศทางกลับหลัง และคงระยะห่างแบบต่อเนื่องสำหรับวันที่ซ้ำและ sparse ข้าม pagination, SVG, PDF, image, preview, print, viewer และ HTML
  • โหมดแสดงสูตร resolve ข้อความสุดท้ายที่รู้เรื่องเซลล์ป้องกัน, การจัดแนว และความกว้าง layout effective แบบสองเท่าที่มีขอบเขต ได้ผลเหมือนกันข้ามเส้นทาง workbook viewer, preview, print, image, EMF, SVG, PDF, HTML คลาสสิก และ HTML ของ XLSX โดยไม่แตะค่าที่เก็บไว้ แคชสูตร หรือความกว้างคอลัมน์
  • arc cubic Bezier แบบ adaptive ที่ขับด้วย flatness ใช้สัญญา precision เดียวกันข้ามเอาต์พุต PDF, SVG และ image จัดสรร segment เพิ่มเฉพาะเมื่อสเกลหรือความเยื้องศูนย์บังคับ
  • outline ของ PDF รองรับ bookmark Unicode แบบซ้อนลึก, สี, ข้อความ bold/italic, รายการลูกแบบขยายหรือยุบ พร้อม page callback สำหรับพื้นหลังและ overlay
  • table style ที่ resolve แล้วทั้งแบบมีชื่อและในตัว ไหลผ่านการจัดรูปแบบที่แชร์กันของ HTML, PDF, image, preview และ viewer โดยไม่ materialize เซลล์ว่าง
  • TXLSSvgExport.SaveObjectAsSVG เรนเดอร์แผนภูมิ รูป หรือ shape ที่มีชื่อหนึ่งชิ้นตามขอบเขตอ็อบเจ็กต์เป๊ะ ๆ โดยไม่ต้องครอปทั้งหน้า
  • HTML export ปล่อยแผนภูมิและ shape เป็น inline SVG และคงรูป SVG, drawing anchor, ลิงก์ และ effect ที่รองรับ โดยไม่ rasterize ทั้งแผ่น
  • TXLSXHtmlExportSession สแกนสไตล์ที่แชร์กันครั้งเดียว แล้ว export แผ่นงานแบบทยอยเพิ่ม พร้อม progress, การยกเลิก และ reset
  • TXLSImageRenderEffects apply crop, brightness, contrast, gamma, การหมุน, opacity และเงาอย่างสม่ำเสมอข้าม graphics backend
  • shape preset, adjustment, callout, flowchart, กล่องข้อความ และ WordArt ใช้เรขาคณิต vector ที่แชร์กันข้ามรูปแบบเอาต์พุต
  • การเรนเดอร์แผนภูมิขั้นสูงครอบคลุม error bar, trendline, date axis, ระยะห่างเชิงตัวเลข, label ที่มาจากเซลล์พร้อมลำดับ component แบบ custom มาก่อน และแท่ง high-low กับ up-down สำหรับงานการเงิน
  • label ของแผนภูมิที่ label อยู่ชิดกันและแผนภูมิวงกลม ผ่านการปรับกันชนแบบ deterministic และการจัดเส้น leader ก่อนปล่อย vector ชิ้นสุดท้าย

ฟีเจอร์ XLSX ที่พร้อมให้โค้ดแอปพลิเคชันใช้

API ฝั่ง XLSX ตอนนี้ครอบคลุมการสร้างสมุดงานในทางปฏิบัติ การปล่อยรายงาน และการแก้ไขสมุดงาน ไม่ใช่แค่การเขียนเซลล์ธรรมดา

  • โครงสร้างแผ่นงานเซลล์, การคำนวณสูตร, ช่วงทั้งช่วงและช่วงผสานข้ามคอลัมน์พร้อม lookup/ลบช่วงที่ผสานตรง ๆ, ขนาดแถวและคอลัมน์พร้อม AutoFit ที่มีขอบเขต, outline, แถวและคอลัมน์ซ่อน, frozen pane, สถานะแผ่น active, แผ่นงานซ่อนและแบบ very hidden
  • สไตล์และการนำเสนอฟอนต์, fill, เส้นขอบ, number format, การจัดแนว, rich text, สีธีม, สี indexed, tint และ shade, เส้นขอบทแยง และ style pool ที่ใช้ซ้ำได้
  • อ็อบเจ็กต์ Excelไฮเปอร์ลิงก์และคอมเมนต์พร้อม lookup ระดับเซลล์ บวกตัวช่วยลบระดับช่วง, รูปภาพและกล่องข้อความ drawing แบบสแตนด์อโลนพร้อม anchor lookup และตัวช่วยลบระดับช่วง, conditional format และ data validation พร้อมตัวช่วย lookup/ลบที่รู้เรื่องช่วง, ตารางสไตล์ Excel พร้อมตัวช่วย lookup/ลบตามชื่อ, เกณฑ์ AutoFilter พร้อมตัวช่วย lookup/ลบคอลัมน์ตรง ๆ, อ็อบเจ็กต์แผนภูมิพร้อมตัวช่วย lookup/ลบตาม title, แผ่นงานแผนภูมิ, defined name พร้อมตัวช่วย lookup/ลบตาม scope, การเก็บรักษาโปรเจ็กต์ VBA พร้อม query HasVbaProject / VbaProjectDefined บวกการตรวจและแก้ไขซอร์สโมดูลที่มีอยู่ และลิงก์สมุดงานภายนอกพร้อมตัวช่วย lookup/ลบเป้าหมาย
  • การรองรับหน้ากระดาษและข้อมูลเมตาโหมด view ของแผ่นงาน, print area, แถวและคอลัมน์ title, ตัวเลือกพิมพ์ gridline และหัวตาราง, page break แบบกำหนดเองพร้อมตัวช่วย lookup ตามดัชนีและลบช่วง, สมุดงาน Date1904, คุณสมบัติเอกสาร, ข้อมูลเมตาของแอปพลิเคชัน และการบันทึก/เปิดแบบ stream

รูปแบบเอาต์พุตจากข้อมูลสมุดงานชุดเดียวกัน

HotXLS ไม่ได้จำกัดอยู่แค่ไฟล์สมุดงานไบนารี API ปัจจุบันเปิดเส้นทาง export ตรง ๆ สำหรับเป้าหมาย integration และรายงานที่พบบ่อย

XLSอ่าน เขียน แก้ไขสมุดงาน Excel 97-2003 แบบคลาสสิก, cursor เซลล์ที่โหลดแล้วแบบ constant-state พร้อมสแนปชอตที่เป็นของผู้เรียก, เซลล์ว่างที่จัดสไตล์อิสระตามออปชัน และ validation topology แบบ fail-fast, ค้นชื่อแผ่นงานเร็ว ๆ จากไฟล์หรือ stream, lookup แผ่นงานตามชื่อ, ตัวช่วยบานหน้าต่าง, active tab ของสมุดงาน, metadata ผู้บันทึก, ตัวช่วยโหลด/บันทึก/ล้าง VBA payload บวกการตรวจและแก้ไขซอร์สโมดูลที่มีอยู่, การควบคุมเรขาคณิต/สถานะหน้าต่าง, ความเที่ยง flag Window2 ทั้ง tab, scrollbar, การควบคุมจัดกลุ่มวันที่ของ AutoFilter, view แผ่นงาน สี gridline และ frozen pane, การควบคุมสไตล์ outline, สิทธิ์การป้องกันแผ่นงาน, flag page setup พร้อมการเก็บ payload BIFF printer-driver แบบ byte-exact ที่มีขอบเขต, การเข้าถึง payload สาธารณะแบบ copy-isolated, การแปลงไป XLSX ตามลำดับความสำคัญของ field แบบมีชนิด, การเรียงช่วงแบบหลายคีย์, cell style ในตัว, คุณสมบัติเอกสาร และเวิร์กโฟลว์ export
XLSXสร้างสมุดงาน OOXML, คำนวณสูตรพร้อมความครอบคลุมฟังก์ชันที่ขยายแล้วและ OnUserFunction/OnUserFunctionEx, cursor เซลล์ที่โหลดแล้วแบบ constant-state บน sparse block ที่ materialize แล้วหรือ storage แบบ packed พร้อมสแนปชอตที่เป็นของผู้เรียก, เซลล์ว่างที่จัดสไตล์อิสระตามออปชัน และ validation lifetime แบบ fail-fast, การสแกนเซลล์ที่โหลดแล้วกับการเขียนแบบ callback, ลิมิต AutoFit แบบมีขอบเขตสำหรับความกว้างคอลัมน์รายงานและความสูงแถว, การแปลง sparse จาก XLSX ไป BIFF8 แบบ deterministic ผ่าน SaveXLSXWorkbookAsXLS พร้อมคงสี indexed แบบล็อกไว้, quantization palette แบบถ่วงน้ำหนักด้วย OKLab และ printer settings แบบมีชนิดที่ preflight แล้ว, การเก็บ part printer-settings ของแผ่นงานแบบ byte-exact กับการเข้าถึง payload สาธารณะแบบ copy-isolated, semantics การล้างแบบเป๊ะ และ diagnostics relationship ที่ค้าง, การบันทึก/โหลดแบบเข้ารหัส AES ที่เข้ากันได้กับ Excel (ECMA-376 Standard Encryption) เร่งด้วย AES-NI พร้อม fallback ฝั่งซอฟต์แวร์, การเก็บรักษาโปรเจ็กต์ VBA พร้อม query HasVbaProject / VbaProjectDefined บวกการตรวจและแก้ไขซอร์สโมดูลที่มีอยู่, find/replace ข้อความ template, export HTML ระดับสมุดงาน/ช่วงที่ปรับได้, lookup/ลบเกณฑ์ AutoFilter ตรง ๆ กับการประเมิน preview, lookup/ลบ anchor รูปฝังตัวตรง ๆ, lookup/ลบ conditional format และ data validation ที่รู้เรื่องช่วง และ round-trip ผ่าน facade lxHandleX เฉพาะทาง
ODSนำเข้า OpenDocument Spreadsheet พร้อมข้อมูล styles.xml , มิติแถว/คอลัมน์, สไตล์เซลล์ที่สืบทอด, การแปลงสูตรพื้นฐาน, การป้องกันแผ่นงาน, ช่วงที่มีชื่อ, ค่าสเกลาร์ที่แคชแบบไม่ระบุชนิด, เศษวินาทีของวันที่ และระยะเวลาที่ติดลบ การส่งออกแบบเต็มรูปแบบผ่าน SaveAsODS เขียนค่าเซลล์แบบมีชนิด, สูตร, rich text, ช่วงที่ผสาน, ไฮเปอร์ลิงก์, รูปภาพ, แผนภูมิ, conditional format, data validation, freeze pane, print range, กลุ่ม outline และการควบคุม TODSExportOptions ตามออปชัน ลงในแพ็กเกจ ODF ที่ถูกต้อง
CSV / TSVนำเข้าข้อความคั่นตัวคั่นผ่าน OpenCSV พร้อมดมตัวคั่นอัตโนมัติ, ตรวจจับการเข้ารหัสแบบ BOM, quoting ตาม RFC 4180, การอนุมานชนิดค่าตามออปชัน, import directive รายคอลัมน์ และการแบ่งแบบความกว้างคงที่ บวกตัวช่วย export สมุดงาน แผ่นงาน และช่วงที่มี overload ทั้ง stream และไฟล์ พร้อมเอาต์พุต fixed-width ที่ pad ด้วยช่องว่าง
HTML / RTF / PDFexport แนวตารางสำหรับรายงาน preview เนื้อความอีเมล และการส่งต่อเอกสาร รวม fragment ของช่วงที่เลือก, HTML title ที่ปรับได้, attribute layout ตาราง, anchor ไฮเปอร์ลิงก์, tooltip ของคอมเมนต์, สไตล์จัดแนวแนวตั้ง, สไตล์ rich-text run, conditional differential style กับ number format, color scale, data bar แบบมีทิศทาง, glyph ตระกูลไอคอน และเอาต์พุตตารางแบบมินิมอล TXLSHTMLImport นำเข้าตาราง top-level หนึ่งตารางที่เลือก หรือทุกตารางที่เซลล์เป้าหมายแบบ 1-based พร้อมระบุตัวคั่นทศนิยมชัดเจน ขณะยังเก็บ overload แบบดึงทุกตารางเดิมไว้ SaveWorkbookAsHTML เผยแพร่แผ่นงาน XLSX ที่มองเห็นได้ทุกแผ่นในเอกสารเดียวที่เลื่อนดูได้ พร้อม anchor ต่อแผ่นที่ stable และชื่อแผ่นที่ escape แล้ว RTF ยังนำเข้ากลับได้ผ่าน OpenRTFแม็พเซลล์ตารางหรือรายการย่อหน้าไปที่ A1 เป็นค่าเริ่มต้น หรือไปที่แถว/คอลัมน์เป้าหมายแบบ 1-based ที่ระบุชัดผ่าน overload แบบขยาย SaveAsPDF ระดับสมุดงานรวมแผ่นงานที่มองเห็นได้ทั้งหมดเป็นเอกสารเดียว เรนเดอร์ fill แบบทึบและแบบ conditional, color scale, data bar, ไอคอน conditional, สีฟอนต์ ขนาด bold, italic, underline, การจัดแนว, เส้นขอบแบบชัดเจน และ gridline ตามออปชัน พร้อมเดินตาม print area, ขนาดกระดาษมาตรฐานหรือมิติกระดาษแบบกำหนดเองละเอียดระดับ point, แนวกระดาษ, margin, zoom, การตั้งค่า fit-to-width, ความกว้างคอลัมน์, ความสูงแถว, page break แบบกำหนดเอง, แถว/คอลัมน์ title ที่พิมพ์ซ้ำ และ header/footer ซ้าย กลาง หรือขวา — รวม field code &F ชื่อไฟล์และ &Z path กับการกด band header/footer ตามออปชัน — ขณะแบ่งหน้าให้ช่วงที่กว้างและสูงข้ามทั้งสองแกน CalculatePageCount รายงานจำนวนหน้าเชิงตรรกะแบบครบถ้วนโดยไม่ต้องสร้างอ็อบเจ็กต์ PDF และ FirstPage กับ LastPage แบบ 1-based เลือกช่วงเอาต์พุตได้ โดยยังเก็บ field จำนวนหน้ารวมไว้ TXLSPaginationModel เปิดเผยการตัดสินใจเหล่านี้เป็น logical page ของ XLS และ XLSX ที่ใช้ซ้ำได้สำหรับ VCL print preview, export PDF, canvas แบบกำหนดเอง และเอาต์พุต EMF รวม title ที่พิมพ์ซ้ำ, ลำดับ over-then-down หรือ down-then-over, การสเกล fit 10% ถึง 400% และการวาง drawing

ทำไมต้องใช้

HotXLS สร้างสเปรดชีตอยู่ในโปรเซส Delphi หรือ C++Builder ของคุณเอง จึงเหมาะกับยูทิลิตีเดสก์ท็อป เครื่องมือ batch บริการ และ installer ที่ Office automation เปราะบางหรือไม่มีให้ใช้

ครอบคลุม RAD Studio

แพ็กเกจเล็งไปที่ Delphi และ C++Builder ตั้งแต่ XE5 ถึง RAD Studio 13.1 Florence พร้อมโปรเจ็กต์แพ็กเกจแยกตามรุ่นและโฟลเดอร์เอาต์พุตต่อรุ่น

รองรับ Free Pascal 3.2.2 กับ Lazarus/LCL บน Windows Win32 และ Win64 ด้วย ผ่าน runtime package Lib/FPC/HotXLSLaz.lpkครอบคลุม API สมุดงาน XLS/XLSX, การสตรีมโดยตรง, สูตร และคอมโพเนนต์ export TDataToXLS กับ TGridToXLS สำหรับ LCL dataset และ TDBGrid

รัน build-FPC-Lib.cmd Win64 หรือ build-FPC-Lib.cmd Win32 เพื่อ compile แพ็กเกจ แล้วรัน Tests/Lazarus/Run-HotXLSLazarusSmoke.cmd Win64 หรือฝั่ง Win32 ที่เทียบเท่า เพื่อพิสูจน์ round-trip ของสมุดงานและการบีบอัด กำหนด LAZARUS_DIR หากติดตั้ง Lazarus ไว้ที่อื่น

แอป FPC ต้อง include ยูนิต Interfaces ของ LCL ไว้ก่อนยูนิต HotXLS เพิ่ม Lib กับ Lib/FPC ใน unit search path รวมถึง Lib ใน include search path ส่วนฟอร์มดีโม VCL, workbook viewer ฝั่ง VCL และ DevExpress grid adapter ยังเป็นคอมโพเนนต์ Delphi/C++Builder เหมือนเดิม

ดู การสนับสนุน Free Pascal และ Lazarus สำหรับรายละเอียดการตั้งค่าแอปพลิเคชันและความเข้ากันได้ของ regex

สบายตอนแจกจ่าย

ซอร์ส แพ็กเกจ สคริปต์ build ดีโม เอกสาร HTML ในเครื่อง และการเชื่อมกับ installer มาให้ครบ ทีมจึง build ทดสอบ และส่งมอบได้โดยไม่ต้องพึ่งเว็บเซอร์วิส

จุดเริ่มต้น

เริ่มจากไฟล์ในเครื่องเหล่านี้ก่อน เมื่อจะประเมินไลบรารีหรือเสียบมันเข้าโปรเจ็กต์