Thư viện C mã nguồn mở để đọc các tệp Excel XLS

Một thư viện C mã nguồn mở nhẹ và nhanh để tải, đọc và trích xuất dữ liệu từ các tệp Excel XLS mà không cần Microsoft Excel.

libxls là gì?

Làm việc với các tệp Microsoft Excel là một yêu cầu phổ biến trong nhiều ứng dụng phần mềm. Trong khi các bảng tính hiện đại sử dụng định dạng XLSX, vô số tổ chức vẫn dựa vào các tệp XLS cổ điển. Đọc và trích xuất dữ liệu từ những tệp này có thể gặp khó khăn vì định dạng XLS nhị phân là độc quyền và phức tạp. libxls là một thư viện C mã nguồn mở được thiết kế đặc biệt để đơn giản hoá công việc này. Nó cung cấp một giải pháp nhanh chóng và nhẹ nhàng để đọc các tệp Excel 97–2003 XLS mà không cần Microsoft Excel hay bất kỳ thành phần Office bên ngoài nào.

libxls là một thư viện C di động cho phép các nhà phát triển đọc và trích xuất thông tin từ các bảng tính Microsoft Excel XLS. Nó hỗ trợ các tệp Excel 97–2003 (.xls), nhiều worksheet, giá trị ô và thông tin định dạng, văn bản Unicode, trích xuất ngày và số, phát triển đa nền tảng và hơn nữa. Không giống như các phương pháp tự động hoá văn phòng, libxls hoạt động độc lập với Microsoft Office, khiến nó phù hợp cho Linux, macOS, Windows và các môi trường nhúng. Nhờ tính đơn giản, khả năng di động và hiệu năng, libxls được sử dụng rộng rãi trong các công cụ di chuyển dữ liệu, bộ chuyển đổi bảng tính, ứng dụng báo cáo và các dự án phần mềm đa nền tảng.

Previous Next

Bắt đầu với libxls

libxls hỗ trợ CMake để biên dịch và cài đặt thư viện. Vui lòng sử dụng lệnh sau.

Cài đặt libxls qua CRAN

 mkdir build
cd build

cmake ..
make
 

Sao chép kho mã nguồn libxls từ GitHub. Vui lòng sử dụng đoạn mã sau.

Cài đặt libxls qua GitHub

 git clone https://github.com/libxls/libxls.git
# Or use your preferred protocol instead of https 

Đọc các tệp Excel XLS cũ thông qua thư viện C

Một trong những điểm mạnh lớn nhất của libxls là khả năng phân tích các tệp XLS nhị phân của Excel 97–2003. Thư viện hiểu cấu trúc nội bộ của các bảng tính này và cho phép các ứng dụng truy cập các hàng, cột và giá trị ô mà không cần Microsoft Excel. Khả năng này đặc biệt hữu ích cho các tổ chức vẫn lưu trữ dữ liệu lịch sử ở định dạng XLS. Các nhà phát triển có thể dễ dàng xây dựng công cụ nhập và tự động hoá quá trình trích xuất dữ liệu trong khi duy trì khả năng tương thích với các tài liệu cũ. Ví dụ sau mở một workbook Excel XLS bằng mã hoá UTF-8. Khi workbook đã được tải, các nhà phát triển có thể truy cập các worksheet và trích xuất dữ liệu bảng tính.

Cách Đọc Tệp Excel XLS bằng Thư viện 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;
}

Truy cập nhiều bảng tính thông qua thư viện C

Nhiều tệp Excel chứa nhiều worksheet tổ chức thông tin thành các phần khác nhau. libxls cung cấp các API để điều hướng và đọc từng worksheet một cách độc lập. Tính năng này hữu ích khi xử lý báo cáo tài chính, hoá đơn, bảng tồn kho hoặc bộ dữ liệu khoa học. Các nhà phát triển có thể lặp qua tất cả các sheet và tự động trích xuất thông tin mà không cần can thiệp của người dùng. Đoạn mã sau mở một workbook và lấy tổng số worksheet có trong tệp.

Cách Lấy Tổng Số Bảng Tính trong Tệp XLS bằng 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 giá trị ô qua thư viện C

Thư viện mã nguồn mở libxls cho phép các ứng dụng truy cập các ô riêng lẻ và lấy nội dung của chúng. Cho dù bảng tính chứa văn bản, số hay ngày, thư viện cung cấp cách truy cập thông tin ô một cách đơn giản. Khả năng này khiến libxls phù hợp cho việc nhập dữ liệu bảng tính vào cơ sở dữ liệu, tạo báo cáo, hoặc chuyển đổi tài liệu Excel sang định dạng CSV và JSON. Ví dụ mã sau đọc ô đầu tiên trong bảng tính và in giá trị của nó ra console.

Cách Truy Cập Các Ô Bảng Tính và In Giá Trị của Chúng bằng Thư viện 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;
}

Hỗ trợ Unicode và mã ký tự

Các ứng dụng hiện đại thường làm việc với bảng tính đa ngôn ngữ. libxls hỗ trợ văn bản Unicode thông qua các mã ký tự có thể cấu hình, cho phép xử lý các tệp chứa ngôn ngữ quốc tế và ký tự đặc biệt. Tính năng này đặc biệt hữu ích cho các ứng dụng kinh doanh xử lý tên khách hàng, địa chỉ và báo cáo bằng các ngôn ngữ khác nhau. Bằng cách chỉ định mã hoá UTF-8, thư viện sẽ giải mã đúng văn bản Unicode được lưu trong các tệp Excel như được minh họa trong ví dụ mã sau.

Cách Giải Thích Văn Bản Unicode Lưu Trữ trong Tệp Excel bằng C?

 
xlsWorkBook *wb = xls_open("employees.xls", "UTF-8");

if(wb)
{
    printf("Workbook loaded using UTF-8 encoding\n");
}

 Tiếng Việt