ไลบรารี C แบบโอเพนซอร์สสำหรับอ่านไฟล์ Excel XLS
ไลบรารี C แบบโอเพนซอร์สที่เบาและเร็วสำหรับการโหลด อ่านและดึงข้อมูลจากไฟล์ Excel XLS โดยไม่ต้องใช้ Microsoft Excel.
libxls คืออะไร?
การทำงานกับไฟล์ Microsoft Excel เป็นความต้องการทั่วไปในหลายแอปพลิเคชันซอฟต์แวร์ แม้ว่าตารางสเปรดสมัยใหม่จะใช้รูปแบบ XLSX แต่หลายองค์กรยังคงพึ่งพาไฟล์ XLS เก่าอยู่ การอ่านและดึงข้อมูลจากไฟล์เหล่านี้อาจเป็นความท้าทายเนื่องจากรูปแบบไบนารี XLS เป็นรูปแบบที่เป็นกรรมสิทธิ์และซับซ้อน libxls เป็นไลบรารี C แบบโอเพ่นซอร์สที่ออกแบบมาเพื่อทำให้งานนี้ง่ายขึ้น มันให้โซลูชันที่เร็วและมีน้ำหนักเบาสำหรับการอ่านไฟล์ Excel 97–2003 XLS โดยไม่ต้องใช้ Microsoft Excel หรือส่วนประกอบ Office ภายนอกใด ๆ
libxls เป็นไลบรารี C แบบพกพาที่ช่วยให้นักพัฒนาสามารถอ่านและดึงข้อมูลจากสเปรดชีต Microsoft Excel XLS ได้ รองรับไฟล์ Excel 97–2003 (.xls) หลายแผ่นงาน ค่าเซลล์และข้อมูลการจัดรูปแบบ ข้อความยูนิโค้ด การดึงวันที่และตัวเลข การพัฒนาแบบข้ามแพลตฟอร์มและอื่น ๆ แตกต่างจากวิธีการอัตโนมัติโปรแกรมสำนักงาน libxls ทำงานอย่างอิสระจาก Microsoft Office ทำให้เหมาะกับ Linux, macOS, Windows และสภาพแวดล้อมแบบฝังตัว ด้วยความเรียบง่าย ความพกพา และประสิทธิภาพ libxls ถูกใช้กันอย่างกว้างขวางในเครื่องมือย้ายข้อมูล ตัวแปลงสเปรดชีต แอปพลิเคชันรายงาน และโครงการซอฟต์แวร์ข้ามแพลตฟอร์ม
เริ่มต้นใช้งาน libxls
libxls รองรับ CMake สำหรับการสร้างและติดตั้งไลบรารี โปรดใช้คำสั่งต่อไปนี้
ติดตั้ง libxls ผ่าน CRAN
mkdir build
cd build
cmake ..
make
คัดลอก (Clone) ที่เก็บซอร์สโค้ดของ libxls จาก GitHub โปรดใช้โค้ดต่อไปนี้
ติดตั้ง libxls ผ่าน GitHub
git clone https://github.com/libxls/libxls.git
# Or use your preferred protocol instead of https การอ่านไฟล์ Excel XLS รุ่นเก่าผ่านไลบรารี C
หนึ่งในจุดแข็งที่ใหญ่ที่สุดของ libxls คือความสามารถในการแยกวิเคราะห์ไฟล์ Excel 97–2003 แบบไบนารี XLS ไลบรารีนี้เข้าใจโครงสร้างภายในของสเปรดชีตเหล่านี้และอนุญาตให้แอปพลิเคชันเข้าถึงแถว, คอลัมน์, และค่าของเซลล์โดยไม่ต้องใช้ Microsoft Excel ความสามารถนี้มีประโยชน์อย่างยิ่งสำหรับองค์กรที่ยังคงเก็บข้อมูลประวัติในรูปแบบ XLS นักพัฒนาสามารถสร้างเครื่องมือการนำเข้าและอัตโนมัติกระบวนการสกัดข้อมูลได้อย่างง่ายดายพร้อมรักษาความเข้ากันได้กับเอกสารเก่า ตัวอย่างต่อไปนี้เปิดเวิร์กบุ๊ก Excel XLS ด้วยการเข้ารหัส UTF-8 เมื่อเวิร์กบุ๊กถูกโหลดแล้ว นักพัฒนาสามารถเข้าถึงแผ่นงานและสกัดข้อมูลสเปรดชีตได้
วิธีอ่านไฟล์ Excel XLS ผ่านไลบรารี C
#include
int main()
{
xlsWorkBook *workbook;
workbook = xls_open("sample.xls", "UTF-8");
if(workbook)
{
printf("Workbook opened successfully\n");
xls_close_WB(workbook);
}
return 0;
}
เข้าถึงหลายแผ่นงานผ่านไลบรารี C
ไฟล์ Excel จำนวนมากมีหลายแผ่นงานที่จัดระเบียบข้อมูลเป็นส่วนต่าง ๆ libxls มี API สำหรับการนำทางและอ่านแต่ละแผ่นงานแยกกัน คุณลักษณะนี้มีประโยชน์เมื่อประมวลผลรายงานการเงิน, ใบแจ้งหนี้, แผ่นสินค้าคงคลัง, หรือชุดข้อมูลทางวิทยาศาสตร์ นักพัฒนาสามารถวนลูปผ่านทุกแผ่นงานและสกัดข้อมูลโดยอัตโนมัติโดยไม่ต้องมีการแทรกแซงของผู้ใช้ ตัวโค้ดต่อไปนี้เปิดเวิร์กบุ๊กและดึงจำนวนรวมของแผ่นงานที่มีอยู่ในไฟล์
วิธีดึงจำนวนแผ่นงานทั้งหมดในไฟล์ XLS ผ่าน C?
#include
int main()
{
xlsWorkBook *wb = xls_open("report.xls", "UTF-8");
if(wb)
{
printf("Number of sheets: %d\n", wb->sheets.count);
xls_close_WB(wb);
}
return 0;
}
การอ่านค่าของเซลล์ผ่านไลบรารี C
ไลบรารีโอเพนซอร์ส libxls ช่วยให้แอปพลิเคชันสามารถเข้าถึงเซลล์แต่ละเซลล์และดึงข้อมูลของมันออกมาได้ ไม่ว่าตารางข้อมูลจะมีข้อความ ตัวเลข หรือวันที่ ไลบรารีนี้ให้การเข้าถึงข้อมูลเซลล์อย่างง่ายดาย ความสามารถนี้ทำให้ libxls เหมาะสำหรับการนำเข้าข้อมูลตารางสเปรดชีตเข้าสู่ฐานข้อมูล การสร้างรายงาน หรือการแปลงเอกสาร Excel เป็นรูปแบบ CSV และ JSON ตัวอย่างโค้ดต่อไปนี้อ่านเซลล์แรกในแผ่นงานและพิมพ์ค่าของมันลงคอนโซล
วิธีเข้าถึงเซลล์ของแผ่นงานและพิมพ์ค่าของมันผ่านไลบรารี C?
#include
int main()
{
xlsWorkBook *wb = xls_open("sample.xls", "UTF-8");
if(wb)
{
xlsWorkSheet *sheet = xls_getWorkSheet(wb, 0);
xls_parseWorkSheet(sheet);
xlsCell *cell = xls_cell(sheet, 0, 0);
if(cell)
printf("Cell value: %s\n", cell->str);
xls_close_WS(sheet);
xls_close_WB(wb);
}
return 0;
}
การสนับสนุน Unicode และการเข้ารหัสอักขระ
แอปพลิเคชันสมัยใหม่มักทำงานกับสเปรดชีตหลายภาษา libxls รองรับข้อความ Unicode ผ่านการกำหนดรหัสอักขระที่ปรับได้ ทำให้สามารถประมวลผลไฟล์ที่มีภาษานานาชาติและอักขระพิเศษได้ ฟีเจอร์นี้มีประโยชน์อย่างยิ่งสำหรับแอปพลิเคชันธุรกิจที่จัดการกับชื่อลูกค้า ที่อยู่ และรายงานในหลายภาษา โดยการระบุการเข้ารหัส UTF-8 ไลบรารีจะตีความข้อความ Unicode ที่เก็บอยู่ในไฟล์ Excel อย่างถูกต้องตามที่แสดงในตัวอย่างโค้ดต่อไปนี้
วิธีตีความข้อความ Unicode ที่เก็บอยู่ในไฟล์ Excel ผ่าน C?
xlsWorkBook *wb = xls_open("employees.xls", "UTF-8");
if(wb)
{
printf("Workbook loaded using UTF-8 encoding\n");
}