Thư viện mã nguồn mở C cho bảng tính Excel
Tạo, Chỉnh sửa, Thao tác và Chuyển đổi các tệp Bảng tính Microsoft Excel 2007 và XLSX, hợp nhất các bảng tính, thêm biểu đồ vào trang tính thông qua API Mã nguồn mở C.
Libxlsxwriter là một thư viện C mã nguồn mở có thể được sử dụng để làm việc với Microsoft Excel 2007 cũng như các tệp Excel XLSX bên trong các ứng dụng của riêng bạn. Thư viện Libxlsxwriter rất tương thích với các tệp Excel XLSX và cho phép các nhà phát triển tạo, sửa đổi và xử lý bảng tính XLSX một cách dễ dàng. Thư viện hoạt động trơn tru trên các nền tảng hàng đầu như Linux, FreeBSD, OpenBSD, OS X, iOS và Windows. Nó có thể biên dịch cho 32 cũng như 64-bit.
Thư viện Libxlsxwriter mã nguồn mở được tối ưu hóa tốt và có thể hoạt động tốt với các tệp bảng tính lớn. Nó đã bao gồm hỗ trợ cho một số tính năng quan trọng, chẳng hạn như Hợp nhất ô bảng tính, xác định tên, hỗ trợ Bộ lọc tự động, thêm Biểu đồ vào trang bảng tính, xác thực dữ liệu và danh sách thả xuống, thêm hình ảnh PNG / JPEG, thêm nhận xét ô, làm việc với macro VBA , thêm hoặc xóa cột khỏi trang tính và nhiều hơn nữa.
Bắt đầu với Libxlsxwriter
Libxlsxwriter hỗ trợ CMake để xây dựng và cài đặt thư viện. Vui lòng sử dụng lệnh sau.
Cài đặt libxlsxwriter qua CRAN
cmake $SOURCE_DIR $FLAGS
Sao chép kho mã nguồn libxlsxwriter từ GitHub. Vui lòng sử dụng mã sau.
Cài đặt libxlsxwriter qua GitHub
it clone https://github.com/jmcnamara/libxlsxwriter.git
# Or use your preferred protocol instead of https
API C để tạo bảng tính Excel XLSX
API Libxlsxwriter mã nguồn mở cho phép các nhà phát triển phần mềm tạo và sửa đổi Bảng tính Excel XLSX bên trong các ứng dụng C của họ. API cung cấp hỗ trợ viết văn bản, số, công thức và siêu liên kết tới nhiều trang tính trong tệp bảng tính Excel. Bạn có thể dễ dàng nhập hoặc xuất dữ liệu từ các tệp Excel và có thể hợp nhất hoặc chia nhỏ các trang tính, dữ liệu tìm kiếm và hơn thế nữa.
Tạo bảng thông tin từ C API
#include "xlsxwriter.h"
int main() {
/* Create a new workbook and add a worksheet. */
lxw_workbook *workbook = workbook_new("demo.xlsx");
lxw_worksheet *worksheet = workbook_add_worksheet(workbook, NULL);
/* Add a format. */
lxw_format *format = workbook_add_format(workbook);
/* Set the bold property for the format */
format_set_bold(format);
/* Change the column width for clarity. */
worksheet_set_column(worksheet, 0, 0, 20, NULL);
/* Write some simple text. */
worksheet_write_string(worksheet, 0, 0, "Hello", NULL);
/* Text with formatting. */
worksheet_write_string(worksheet, 1, 0, "World", format);
/* Write some numbers. */
worksheet_write_number(worksheet, 2, 0, 123, NULL);
worksheet_write_number(worksheet, 3, 0, 123.456, NULL);
/* Insert an image. */
worksheet_insert_image(worksheet, 1, 2, "logo.png");
workbook_close(workbook);
return 0;
}
Làm việc với Biểu đồ Excel
API Libxlsxwriter đã cung cấp chức năng để thêm và sửa đổi Biểu đồ vào bảng tính Excel bằng cách sử dụng các lệnh C. Bạn có thể sử dụng các chức năng đánh dấu biểu đồ để tạo và quản lý biểu đồ. Bạn cũng có thể thêm đường xu hướng để chỉ ra xu hướng trong dữ liệu và thanh lỗi để chỉ ra giới hạn lỗi trong dữ liệu. Bạn cũng có thể gắn nhãn dữ liệu cho một chuỗi biểu đồ để chỉ ra giá trị của các điểm dữ liệu được vẽ biểu đồ. Bạn có thể dễ dàng áp dụng các thuộc tính định dạng biểu đồ cho bất kỳ đối tượng biểu đồ nào.
Tạo biểu đồ trong bảng thông qua Libxlsxwriter
#include "xlsxwriter.h"
int main() {
lxw_workbook *workbook = new_workbook("chart.xlsx");
lxw_worksheet *worksheet = workbook_add_worksheet(workbook, NULL);
// User function to add data to worksheet, not shown here.
write_worksheet_data(worksheet);
// Create a chart object.
lxw_chart *chart = workbook_add_chart(workbook, LXW_CHART_COLUMN);
// In the simplest case we just add some value data series.
// The NULL categories will default to 1 to 5 like in Excel.
chart_add_series(chart, NULL, "=Sheet1!$A$1:$A$5");
chart_add_series(chart, NULL, "=Sheet1!$B$1:$B$5");
chart_add_series(chart, NULL, "=Sheet1!$C$1:$C$5");
// Insert the chart into the worksheet
worksheet_insert_chart(worksheet, CELL("B7"), chart);
return workbook_close(workbook);
}
Làm việc với Xác thực Dữ liệu Excel
Xác thực dữ liệu là một tính năng của Excel cho phép các nhà phát triển kiểm soát những gì người dùng nhập vào một ô Excel. Ví dụ: bạn có thể hạn chế người dùng nhập một số từ 1 đến 6 hoặc đảm bảo mục nhập văn bản trong một ô ít hơn 25 ký tự. API Libxlsxwriter cung cấp nhiều tùy chọn để xác thực đầu vào của người dùng như Bất kỳ giá trị nào, Số nguyên, Số thập phân, Danh sách, Ngày, Giờ, Độ dài văn bản hoặc công thức tùy chỉnh.
Hiển thị Tin nhắn khi Integer không phải B/t 1 và 100
// Display a custom info message when integer isn't between 1 and 100.
data_validation->validate = LXW_VALIDATION_TYPE_INTEGER;
data_validation->criteria = LXW_VALIDATION_CRITERIA_BETWEEN;
data_validation->minimum_number = 1;
data_validation->maximum_number = 100;
data_validation->input_title = "Enter an integer:";
data_validation->input_message = "between 1 and 100";
data_validation->error_title = "Input value is not valid!";
data_validation->error_message = "It should be an integer between 1 and 100";
Làm việc với Macro VBA
API Libxlsxwriter giúp các nhà phát triển phần mềm dễ dàng thêm tệp VBA chứa các hàm hoặc macro vào sổ làm việc XLSX. Các tệp Excel có chứa các hàm và macro nên sử dụng phần mở rộng XLSM, nếu không Excel sẽ phàn nàn và có thể không mở tệp. Macro VBA thường tham chiếu đến sổ làm việc và các đối tượng trang tính. Nếu tên mã VBA không được chỉ định rõ ràng thì libxlsxwriter sẽ sử dụng các giá trị mặc định trong Excel của ThisWorkbook và Sheet1, Sheet2, v.v.
Thêm BA Marcos vào Excel Cookbook bên trong C Apps
#include "xlsxwriter.h"
int main() {
/* Note the xlsm extension of the filename */
lxw_workbook *workbook = workbook_new("macro.xlsm");
lxw_worksheet *worksheet = workbook_add_worksheet(workbook, NULL);
worksheet_set_column(worksheet, COLS("A:A"), 30, NULL);
/* Add a macro file extracted from an Excel workbook. */
workbook_add_vba_project(workbook, "vbaProject.bin");
worksheet_write_string(worksheet, 2, 0, "Press the button to say hello.", NULL);
lxw_button_options options = {.caption = "Press Me", .macro = "say_hello",
.width = 80, .height = 30};
worksheet_insert_button(worksheet, 2, 1, &options);
return workbook_close(workbook);
}