Perpustakaan C Sumber Terbuka untuk Hamparan Excel
Buat, Edit, Manipulasi dan Tukar fail Hamparan Microsoft Excel 2007 dan XLSX, menggabungkan hamparan, menambahkan carta pada lembaran kerja melalui API C Sumber Terbuka.
Libxlsxwriter ialah perpustakaan C sumber terbuka yang boleh digunakan untuk berfungsi dengan Microsoft Excel 2007 serta fail Excel XLSX di dalam aplikasi anda sendiri. Pustaka Libxlsxwriter sangat serasi dengan fail Excel XLSX dan membolehkan pembangun mencipta, mengubah suai dan memproses hamparan XLSX dengan mudah. Perpustakaan berfungsi dengan lancar pada platform terkemuka seperti Linux, FreeBSD, OpenBSD, OS X, iOS dan Windows. Ia boleh menyusun untuk 32 dan juga untuk 64-bit.
Pustaka Libxlsxwriter sumber terbuka dioptimumkan dengan baik dan boleh berfungsi dengan betul dengan fail hamparan yang besar. Ia telah menyertakan sokongan untuk beberapa ciri penting, seperti Menggabungkan sel hamparan, menentukan nama, sokongan Autofilters, menambahkan Carta pada halaman lembaran kerja, pengesahan data dan senarai lungsur, menambah imej PNG/JPEG, menambah ulasan sel, bekerja dengan makro VBA , menambah atau mengalih keluar lajur daripada helaian, dan banyak lagi.
Bermula dengan Libxlsxwriter
Libxlsxwriter menyokong CMake untuk membina dan memasang perpustakaan. Sila gunakan arahan berikut.
Pasang libxlsxwriter melalui CRAN
cmake $SOURCE_DIR $FLAGS
Klonkan repositori kod sumber libxlsxwriter daripada GitHub. Sila gunakan kod berikut.
Pasang libxlsxwriter melalui GitHub
it clone https://github.com/jmcnamara/libxlsxwriter.git
# Or use your preferred protocol instead of https
C API untuk Mencipta Hamparan Excel XLSX
API Libxlsxwriter sumber terbuka membolehkan pembangun perisian mencipta dan mengubah suai Hamparan Excel XLSX di dalam aplikasi C mereka. API menyediakan sokongan untuk menulis teks, nombor, formula dan hiperpautan kepada berbilang lembaran kerja dalam fail hamparan Excel. Anda boleh mengimport atau mengeksport data dengan mudah daripada fail Excel dan boleh menggabungkan atau memisahkan helaian, data carian dan banyak lagi.
Cipta Hamparan Excel melalui 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;
}
Bekerja dengan Carta Excel
API Libxlsxwriter telah menyediakan fungsi untuk menambah dan mengubah suai Carta pada hamparan Excel menggunakan arahan C. Anda boleh menggunakan fungsi penanda carta untuk menjana dan mengurus carta. Anda juga boleh menambah garis arah aliran untuk menunjukkan arah aliran dalam data dan bar ralat untuk menunjukkan sempadan ralat dalam data. Anda juga boleh melabelkan data pada siri carta untuk menunjukkan nilai titik data yang diplot. Anda boleh menggunakan sifat pemformatan carta dengan mudah pada mana-mana objek carta.
Cipta Carta dalam Lembaran Kerja Excel melalui 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);
}
Bekerja dengan Pengesahan Data Excel
Pengesahan data ialah ciri Excel yang membolehkan pembangun mengawal perkara yang pengguna masukkan ke dalam sel Excel. Sebagai contoh, anda boleh menyekat pengguna untuk memasukkan nombor antara 1 dan 6 atau pastikan entri teks dalam sel kurang daripada 25 aksara. API Libxlsxwriter menyediakan banyak pilihan untuk mengesahkan input pengguna seperti Sebarang Nilai, Nombor Bulat, Perpuluhan, Senarai, Tarikh, Masa, Panjang teks atau formula tersuai.
Paparkan Sesuaikan Mesej Apabila Integer bukan b/t 1 & 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";
Bekerja dengan Makro VBA
API Libxlsxwriter memberikan kemudahan kepada pembangun perisian untuk menambah fail VBA yang mengandungi fungsi atau makro pada buku kerja XLSX. Fail Excel yang mengandungi fungsi dan makro harus menggunakan sambungan XLSM atau Excel akan mengadu dan mungkin tidak membuka fail tersebut. Makro VBA biasanya merujuk kepada buku kerja dan objek lembaran kerja. Jika nama kod VBA tidak dinyatakan secara eksplisit maka libxlsxwriter akan menggunakan lalai Excel ThisWorkbook dan Sheet1, Sheet2, dsb.
Tambahkan Makro VBA pada Buku Kerja Excel dalam 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);
}