ภาพรวม
![]() |
HotXLS Excel Read/Write Library คือคอมโพเนนต์อ่าน-เขียน Excel ประสิทธิภาพสูงสำหรับ Delphi & C++Builder
สามารถสร้างสเปรดชีต Excel ใหม่ และอ่านหรือแก้ไขเวิร์กบุ๊ก XLS และ XLSX ที่มีอยู่ โดยไม่จำเป็นต้องติดตั้ง
Microsoft Excel หรือ Office บนเครื่อง
HotXLS เขียนด้วย Object Pascal ทั้งหมด โดยอ่านและเขียนไฟล์ Excel โดยตรง
ในระดับไบนารีและ OOXML จึงไม่มีค่าใช้จ่ายจาก COM/OLE automation และไม่ขึ้นอยู่กับการที่ Office
ได้รับการอนุญาตสิทธิ์หรือติดตั้งไว้ HotXLS รองรับ Delphi และ C++Builder ตั้งแต่ XE5 ถึง 13 Florence
การจัดรูปแบบสีใน Classic XLS ยังคงใช้ระบบพาเลตต์โดยเจตนา ดูที่ โมเดลสี Classic XLS
สำหรับการตัดสินใจเรื่อง ThemeColor / TintAndShade
|
สถาปัตยกรรม Dual-Facade
HotXLS เปิดเผยยูนิต facade สองตัวที่ทำงานพร้อมกัน เพื่อให้โค้ด XLS รุ่นเก่าและโค้ด XLSX ใหม่
สามารถอยู่ร่วมกันได้โดยไม่ต้องปรับโครงสร้างใดๆ:
lxHandle |
Facade หลักสำหรับรูปแบบ Excel 97–2003 BIFF8 (.xls) รวมถึงการส่งออก HTML, RTF, CSV และ TSV
โค้ดผู้ใช้ที่มีอยู่ทั้งหมดยังคงใช้ยูนิตนี้ได้โดยไม่มีการเปลี่ยนแปลง จุดเข้าถึง:
TXLSWorkbook, TXLSWorksheet, IXLSWorkbook, IXLSRange
|
lxHandleX |
Facade หลักสำหรับรูปแบบ Excel 2007+ OOXML (.xlsx) และ OpenDocument Spreadsheet
(.ods) สำหรับการอ่าน/เขียน มีประเภทเวิร์กบุ๊กและเวิร์กชีตเป็นของตัวเอง เพื่อไม่ให้
พฤติกรรมเฉพาะของ XLSX ถูกนำมาปรับใช้กับ code path ของ BIFF จุดเข้าถึง:
TXLSXWorkbook, TXLSXWorksheet, TXLSXCell
|
Facade ทั้งสองใช้เอนจินสูตรเดียวกัน เลเยอร์รองรับ Unicode เดียวกัน และ pipeline ส่งออกเดียวกัน
ดูที่ ภาพรวม XLSX Facade สำหรับลำดับชั้นคลาสทั้งหมดที่เปิดเผยโดย
lxHandleX
เริ่มต้นใช้งานอย่างรวดเร็ว
ตัวอย่างโค้ดต่อไปนี้แสดงโค้ดขั้นต่ำสำหรับการสร้างเวิร์กบุ๊กที่มีเวิร์กชีตหนึ่งแผ่น และเขียน
ค่าลงในเซลล์
Classic XLS (lxHandle)
uses lxHandle;
var
Book: IXLSWorkbook;
ws: TXLSWorksheet;
begin
Book := TXLSWorkbook.Create;
// เพิ่มเวิร์กชีตและตั้งชื่อ
ws := Book.Sheets.Add;
ws.Name := 'Sheet1';
// เขียนค่าลงในเซลล์โดยใช้สัญลักษณ์ A1
ws.Range['A1'].Value := 'Hello';
ws.Range['B1'].Value := 42;
ws.Range['C1'].Formula := '=B1*2';
// ใช้การจัดรูปแบบพื้นฐาน
ws.Range['A1'].Font.Bold := True;
ws.Range['A1'].Interior.Color := clYellow;
Book.SaveAs('output.xls');
end;
XLSX (lxHandleX)
uses lxHandleX;
var
Book: TXLSXWorkbook;
ws: TXLSXWorksheet;
cell: TXLSXCell;
begin
Book := TXLSXWorkbook.Create;
try
ws := Book.Sheets.Add('Sheet1');
// เขียนสตริงและค่าตัวเลข
ws.Cells[1, 1].Value := 'Product';
ws.Cells[1, 2].Value := 'Price';
ws.Cells[2, 1].Value := 'Widget';
ws.Cells[2, 2].Value := 9.99;
// ใช้รูปแบบตัวเลขสกุลเงิน
cell := ws.Cells[2, 2];
cell.NumberFormat := '$#,##0.00';
Book.SaveAs('output.xlsx');
finally
Book.Free;
end;
end;
สำหรับการแนะนำแบบครอบคลุมที่ครอบคลุม facade ทั้งสองในโปรเจกต์ demo เดียว ดูที่
API Tour Demo
คุณสมบัติ
รองรับ File I/O และ Stream
อ่านไฟล์ Excel ที่มีอยู่ เขียนไฟล์ Excel ใหม่หรือที่มีอยู่ จัดการการป้องกันด้วยรหัสผ่านของ Classic XLS และ
กระบวนการบันทึกแบบเข้ารหัสของ XLSX และแสดงรายชื่อชีตจากไฟล์หรือ stream ของ XLS และ XLSX ได้อย่างรวดเร็ว
โดยไม่ต้องโหลดเวิร์กบุ๊กทั้งหมด การเปิด CSV เป็นเวิร์กบุ๊กรองรับผ่าน
IXLSWorkbook.OpenCSV
ค่าเซลล์และสูตร
อ่านและเขียนค่าเซลล์ของประเภท Excel ดั้งเดิมทั้งหมด: ตัวเลข, สตริง, วันที่/เวลา, บูลีน และสูตร
เอนจินคำนวณในตัวประเมินสูตรในเวิร์กบุ๊ก Classic XLS และ XLSX โดยรองรับ:
- ฟังก์ชันข้อความ (
LEFT,MID,TRIM,SUBSTITUTE, …) - ฟังก์ชันวันที่และวันทำงาน (
DATE,NETWORKDAYS,WORKDAY, …) - ฟังก์ชันวิศวกรรมและการแปลงฐาน (
BIN2DEC,HEX2DEC, …) - ฟังก์ชัน Bitwise (
BITAND,BITOR,BITXOR, …) - ฟังก์ชันทางสถิติและการรวม (
AVERAGE,SUMIF,COUNTIFS, …) - ฟังก์ชันคณิตศาสตร์ (
ROUND,MOD,POWER, …)
callback
OnUserFunction ช่วยให้คุณจัดการฟังก์ชันเวิร์กชีตที่กำหนดเองหรือไม่รองรับในขณะรันไทม์
ดูที่ callback OnUserFunction สำหรับลายเซ็นและตัวอย่าง

การจัดรูปแบบเซลล์
เข้าถึงแอตทริบิวต์รูปลักษณ์ของเซลล์ได้อย่างสมบูรณ์:
- แบบอักษร — ชื่อ, ขนาด, สี (RGB หรือสีธีม + ทินต์), ตัวหนา, ตัวเอียง, ขีดเส้นใต้, ขีดฆ่า, ตัวยก, ตัวห้อย, เงา และขอบ
- การจัดตำแหน่ง — การจัดตำแหน่งแนวนอนและแนวตั้ง, ทิศทางข้อความ (มุม), ระดับการเยื้อง, การตัดข้อความ, ย่อให้พอดี และลำดับการอ่าน (RTL/LTR)
- เส้นขอบ — ขอบทั้งสี่ด้านและเส้นทแยงมุม, รูปแบบเส้น, ความหนา และสี RGB / ธีม
- ภายใน (เติม) — เติมสีเดียว, เติมลวดลาย, สีพื้นหน้าและพื้นหลัง รวมถึงสีธีมพร้อม TintAndShade
- รูปแบบตัวเลข — สตริงรูปแบบในตัวและกำหนดเองสำหรับวันที่, เวลา, สกุลเงิน, เปอร์เซ็นต์ และสัญกรณ์วิทยาศาสตร์
- ความคิดเห็น / คำอธิบาย — เพิ่ม อ่าน และจัดรูปแบบความคิดเห็นในเซลล์
การดำเนินการช่วง
IXLSRange (classic facade) และ TXLSXRange (XLSX facade) มีชุดการดำเนินการ
ช่วงที่หลากหลาย:
- ผสานและยกเลิกการผสานเซลล์; เข้าถึงพื้นที่ผสานของเซลล์ใดๆ
- คัดลอก, ย้าย, แทรก และลบช่วง พร้อมควบคุมทิศทางการเลื่อน
- จัดกลุ่มและยกเลิกการจัดกลุ่มแถวหรือคอลัมน์สำหรับมุมมองโครงร่าง/ยุบ
- AutoFit ความสูงแถวและความกว้างคอลัมน์ตามเนื้อหาเซลล์
- ใช้สไตล์เซลล์ที่ตั้งชื่อในตัว (
ApplyBuiltinStyle) - การเลือกหลายพื้นที่ (
TXLSWorksheet.SelectAreas) - callback การวนซ้ำ ForEachCell สำหรับการประมวลผลเซลล์จำนวนมาก
คุณสมบัติเวิร์กชีต
การควบคุมระดับเวิร์กชีตครอบคลุม:
- ชื่อชีต, สีแท็บ, การมองเห็น (ซ่อน / ซ่อนมาก) และการนำทางตามดัชนี
- การป้องกันชีตพร้อมรายละเอียดสิทธิ์ต่อรายการ; การป้องกันระดับเวิร์กบุ๊ก
- ตรึงบานหน้าต่าง, แบ่งบานหน้าต่าง และตำแหน่งการเลื่อน
- ช่วง AutoFilter พร้อมเกณฑ์; กฎการตรวจสอบข้อมูลรายการ
- การจัดรูปแบบตามเงื่อนไข: สเกลสี (2 และ 3 สี), แถบข้อมูล และชุดไอคอน
- ค้นหาข้อความและแทนที่ข้อความในเวิร์กชีต
- ตัวเลือกมุมมอง: สีเส้นตาราง, โหมดแสดงสูตร, แสดงศูนย์, แสดงหัวเรื่อง, แสดงขวาไปซ้าย, แสดงสัญลักษณ์โครงร่าง และระดับการซูม
- ตารางที่มีโครงสร้าง (
TXLSTable/TXLSXTable): เพิ่ม, เข้าถึง และจัดรูปแบบ ตาราง Excel พร้อมแถวส่วนหัวและแถวแถบ - แผนภูมิ: เพิ่มชีตแผนภูมิและแผนภูมิแบบฝังผ่าน
TXLSWorksheetsAddChartSheetและTXLSXChart
ไฮเปอร์ลิงก์และช่วงที่ตั้งชื่อ
เพิ่มและอ่านไฮเปอร์ลิงก์ (URL, mailto และการอ้างอิงเซลล์ภายในเวิร์กบุ๊ก) ผ่าน
IXLSHyperLinks กำหนดและแก้ไขช่วงที่ตั้งชื่อในระดับเวิร์กบุ๊กและเวิร์กชีตผ่าน
IXLSNames / TXLSXDefinedNames ช่วงที่ตั้งชื่อสามารถใช้ในสูตรและ
แก้ไขกลับเป็นช่วงเซลล์ผ่าน RefersToRange
รูปภาพและรูปร่าง
ฝังรูปภาพแรสเตอร์ (BMP, JPG, PNG, GIF) ลงในเวิร์กชีตผ่าน
TXLSShapes.AddPicture / TXLSXWorksheet.AddImage สร้างกล่องข้อความแบบสแตนด์อโลน
ใน Classic XLS ผ่าน TXLSShapes.AddTextBox รักษากฎตัวเชื่อมต่อ OfficeArt และตัวแก้ที่สร้างโดย Excel
ใน BIFF8 และเปิดเผยตัวเลือก FOPT ของรูปร่างดิบผ่าน
TXLSShape.OfficeArtOptions สำหรับกระบวนการวาดขั้นสูง
การตั้งค่าหน้าและการพิมพ์
เข้าถึงเลย์เอาต์การพิมพ์ได้อย่างสมบูรณ์ผ่าน
IXLSPageSetup:
- ขนาดกระดาษ (A4, Letter, Legal และอื่นๆ อีกมาก; ดูที่ PaperSize)
- การวางแนว (แนวตั้ง / แนวนอน), ระยะขอบ, จัดกึ่งกลางแนวนอน / แนวตั้ง
- สตริงส่วนหัวและส่วนท้ายพร้อมรหัสการจัดรูปแบบ Excel (ตัวหนา, ตัวเอียง, หมายเลขหน้า, วันที่ ฯลฯ; ดูที่ รหัสการจัดรูปแบบส่วนหัว/ส่วนท้าย)
- ตัวแบ่งหน้าแนวนอนและแนวตั้งแบบกำหนดเอง
- การปรับขนาดให้พอดีกับหน้า; เปอร์เซ็นต์การซูม; พื้นที่พิมพ์; ชื่อที่พิมพ์ (ทำซ้ำแถว / คอลัมน์)
- คุณภาพร่าง; ขาวดำ; พิมพ์เส้นตาราง; พิมพ์หัวเรื่อง; พิมพ์หมายเหตุ
รูปแบบส่งออก
ส่งออกเวิร์กบุ๊กทั้งหมด, เวิร์กชีตแต่ละแผ่น หรือช่วงเซลล์ที่กำหนดเองไปยัง:
- HTML — เอกสารสมบูรณ์หรือส่วนตารางแบบ inline สำหรับการแสดงตัวอย่างหรืออีเมล;
ควบคุมได้ผ่าน
TXLSHTMLExportและTXLSXHtmlExportOptions - RTF — ข้อความ rich text สำหรับนำเข้าในโปรแกรมประมวลผลคำ
- CSV — ค่าที่คั่นด้วยจุลภาคพร้อมตัวคั่นและการเข้ารหัสที่กำหนดค่าได้
- TSV — ค่าที่คั่นด้วยแท็บ
- ODS — OpenDocument Spreadsheet ผ่าน facade
lxHandleX
ส่งออกฐานข้อมูลและกริด
ส่งออก TDataSet ที่เข้ากันได้หรือ TDBGrid โดยตรงไปยัง Excel, HTML หรือ RTF โดยใช้
TDataToXLS หรือ
TGridToXLS
คอมโพเนนต์ทั้งสองเรียกใช้เหตุการณ์ AfterCell, AfterRow, AfterTitle และ
AfterGroup สำหรับการควบคุมผลลัพธ์อย่างละเอียด และรองรับฟิลด์การจัดกลุ่มหลายระดับ
การรักษาโปรเจกต์ VBA
HotXLS รักษาเพย์โหลดโปรเจกต์ VBA เมื่อเปิดและบันทึกเวิร์กบุ๊กที่เปิดใช้งานมาโคร
การตรวจสอบโมดูลแบบอ่านอย่างเดียวพร้อมใช้งานผ่าน
TXLSVBAProject และ TXLSVBAModule
เรียก IXLSWorkbook.HasVBAProject เพื่อตรวจจับเพย์โหลด และ
LoadVBAProjectFromFile / SaveVBAProjectToFile เพื่อถ่ายโอนระหว่างไฟล์
Unicode และข้อความนานาชาติ
การจัดการสตริงทั้งหมดเป็น Unicode โดยกำเนิด HotXLS อ่านและเขียนไฟล์ Excel ที่สร้างในภาษาใดก็ตาม
รวมถึง CJK, อาหรับ, ฮีบรู, ไทย และสคริปต์อื่นๆ พร้อมรองรับข้อความแบบ bidirectional และลำดับการอ่านที่ถูกต้อง

Pivot Table (Classic XLS)
สร้าง pivot table จากช่วงต้นทางด้วย
TXLSWorksheet.AddPivotTable, กำหนดค่าการจัดวางฟิลด์และรูปแบบตัวเลขของฟิลด์ข้อมูล และ
ตรวจสอบโมเดล pivot ผ่าน TXLSWorksheet.PivotTables
ดูที่ API ของ pivot table ใน Classic XLS สำหรับรายละเอียดฟิลด์และตัวกรอง
ข้อดี
| No Office dependency | อ่านและเขียนไฟล์ XLS และ XLSX โดยตรงในระดับไบนารี ไม่จำเป็นต้องติดตั้ง อนุญาตสิทธิ์ หรือเรียกใช้ Microsoft Excel หรือ Office ซึ่งขจัดค่าใช้จ่ายจาก COM/OLE automation หลีกเลี่ยงข้อจำกัดด้านเธรด ที่กำหนดโดย Office interop และช่วยให้ HotXLS ใช้งานได้ในบริบทฝั่งเซิร์ฟเวอร์และบริการที่ไม่สะดวก ในการติดตั้ง Office บนเดสก์ท็อป |
| High performance | ตัวแยกวิเคราะห์ BIFF8 และ OOXML เขียนด้วย Object Pascal แบบ native โดยไม่มีการจัดสรร XML DOM ตัวกลางสำหรับ hot path เวิร์กบุ๊กขนาดใหญ่ที่มีหลายแสนแถวสามารถอ่านและเขียนได้ โดยใช้หน่วยความจำสูงสุดต่ำ การตัดข้อความที่ซ้ำกันและการบีบอัดสูตรที่ใช้ร่วมกันถูกนำไปใช้ โดยอัตโนมัติเพื่อให้ขนาดไฟล์เล็ก |
| OLE migration path | พื้นผิว API ของ classic facade (workbook, worksheet, range, font, borders, interior, page setup) สะท้อน object model ของ Excel ที่คุ้นเคยจาก OLE Automation อย่างใกล้ชิด ทำให้การย้ายโปรเจกต์ ที่ใช้ OLE ที่มีอยู่เป็นเรื่องง่าย: แทนที่การเรียก COM ด้วยการเรียก HotXLS, ลบการพึ่งพา Office และได้รับประสิทธิภาพแบบ native |
| Dual-facade design |
โค้ด XLS รุ่นเก่ายังคง compile และทำงานได้โดยไม่เปลี่ยนแปลงกับ lxHandle ขณะที่โค้ด XLSX ใหม่
ใช้ facade lxHandleX ที่สมบูรณ์กว่า การย้ายรูปแบบไฟล์ทีละรูปแบบนั้นปลอดภัยและ
ทำได้ทีละน้อย
|
| Formula engine included |
เอนจินคำนวณแบบหลายรอบในตัวจัดการฟังก์ชันเวิร์กชีตทั่วไปที่สุดโดยไม่ต้องให้
Excel คำนวณใหม่เมื่อเปิด ฟังก์ชันที่กำหนดเองจัดการผ่าน callback OnUserFunction
|
| Easy to use |
คอมโพเนนต์ Delphi แบบ drop-in (TDataToXLS, TGridToXLS) ไม่ต้องการโค้ดสำหรับ
งานส่งออกทั่วไป fluent range API รองรับสัญลักษณ์ A1, สัญลักษณ์ R1C1 และการจัดดัชนี
แถว/คอลัมน์แบบ zero-based
|
| Thread-safe file I/O |
เนื่องจากไม่มีกระบวนการ Office ที่ใช้ร่วมกัน อินสแตนซ์ TXLSXWorkbook หลายตัวจึงสามารถ
สร้างและบันทึกพร้อมกันบนเธรดอิสระโดยไม่ต้องซิงโครไนซ์ ทำให้ HotXLS
เหมาะสมสำหรับเซิร์ฟเวอร์สร้างรายงานแบบ multi-threaded
|
ความเข้ากันได้
HotXLS เข้ากันได้กับเวอร์ชัน RAD Studio ต่อไปนี้:
| Delphi | XE5, XE6, XE7, XE8, 10 Seattle, 10.1 Berlin, 10.2 Tokyo, 10.3 Rio, 10.4 Sydney, 11 Alexandria, 12 Athens, 13 Florence |
| C++Builder | XE5, XE6, XE7, XE8, 10 Seattle, 10.1 Berlin, 10.2 Tokyo, 10.3 Rio, 10.4 Sydney, 11 Alexandria, 12 Athens, 13 Florence |
| Target platforms | Windows 32-bit และ 64-bit |
| Excel file formats | XLS (BIFF8, Excel 97–2003), XLSX (OOXML, Excel 2007+), ODS (OpenDocument 1.2) |
| Export-only formats | HTML, RTF, CSV, TSV |
ดูเพิ่มเติม
- ภาพรวม XLSX Facade (lxHandleX) — ลำดับชั้นคลาสทั้งหมดและ สมาชิก API เฉพาะ XLSX/ODS
- API Tour Demo — demo แรกที่ควรรันเมื่อเรียนรู้ HotXLS จากศูนย์
- IXLSWorkbook — เอกสารอ้างอิงอินเทอร์เฟซเวิร์กบุ๊ก Classic XLS
- TXLSWorksheet — เอกสารอ้างอิงคลาสเวิร์กชีต Classic XLS
- IXLSRange — อินเทอร์เฟซช่วง: การเข้าถึงเซลล์, การจัดรูปแบบ และ การดำเนินการ
- TXLSXWorkbook — เอกสารอ้างอิงคลาสเวิร์กบุ๊ก XLSX
- TXLSXWorksheet — เอกสารอ้างอิงคลาสเวิร์กชีต XLSX
- TGridToXLS — คอมโพเนนต์ส่งออก DBGrid-to-Excel แบบ drop-in
- TDataToXLS — คอมโพเนนต์ส่งออก dataset-to-Excel แบบ drop-in
- callback OnUserFunction — จุดขยายฟังก์ชันเวิร์กชีตที่กำหนดเอง
- โมเดลสี Classic XLS — เหตุผลการออกแบบสีแบบพาเลตต์และสีธีม
- สมาชิก API เพิ่มเติมของ Classic XLS — คุณสมบัติการคำนวณ, คุณสมบัติเอกสาร, pivot table และอื่นๆ
- ตัวอย่าง — ภาพรวมโปรเจกต์ตัวอย่าง
- ตัวอย่างใบสั่งซื้อ — ตัวอย่างการสร้าง XLS แบบฟีเจอร์เต็ม พร้อมซอร์สโค้ด
