ไลบรารี C แบบโอเพ่นซอร์สสำหรับสเปรดชีต Excel

สร้าง แก้ไข จัดการ และแปลงไฟล์ Microsoft Excel 2007 และ XLSX Spreadsheet รวมสเปรดชีต เพิ่มแผนภูมิลงในเวิร์กชีตผ่าน Open Source C API

Libxlsxwriter เป็นไลบรารี C แบบโอเพ่นซอร์สที่สามารถใช้กับ Microsoft Excel 2007 รวมถึงไฟล์ Excel XLSX ภายในแอปพลิเคชันของคุณเองได้ ไลบรารี Libxlsxwriter เข้ากันได้กับไฟล์ Excel XLSX และช่วยให้นักพัฒนาสามารถสร้าง แก้ไข และประมวลผลสเปรดชีต XLSX ได้อย่างง่ายดาย ไลบรารีทำงานได้อย่างราบรื่นบนแพลตฟอร์มชั้นนำ เช่น Linux, FreeBSD, OpenBSD, OS X, iOS และ Windows สามารถคอมไพล์สำหรับ 32 และ 64 บิต

ไลบรารี Libxlsxwriter แบบโอเพ่นซอร์สได้รับการปรับให้เหมาะสมและสามารถทำงานกับไฟล์สเปรดชีตขนาดใหญ่ได้อย่างเหมาะสม รวมการสนับสนุนคุณสมบัติที่สำคัญหลายอย่าง เช่น การผสานเซลล์สเปรดชีต การกำหนดชื่อ การรองรับตัวกรองอัตโนมัติ การเพิ่มแผนภูมิไปยังหน้าเวิร์กชีต การตรวจสอบข้อมูล และรายการดรอปดาวน์ การเพิ่มรูปภาพ PNG/JPEG การเพิ่มความคิดเห็นของเซลล์ การทำงานกับมาโคร VBA การเพิ่มหรือเอาคอลัมน์ออกจากแผ่นงาน และอื่นๆ อีกมากมาย

Previous Next

เริ่มต้นใช้งาน Libxlsxwriter

Libxlsxwriter รองรับ CMake สำหรับการสร้างและติดตั้งไลบรารี โปรดใช้คำสั่งต่อไปนี้

ติดตั้ง libxlsxwriter ผ่าน CRAN

 cmake $SOURCE_DIR $FLAGS 

โคลนที่เก็บซอร์สโค้ด libxlsxwriter จาก GitHub กรุณาใช้รหัสต่อไปนี้

ติดตั้ง libxlsxwriter ผ่าน GitHub

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

C API เพื่อสร้างสเปรดชีต Excel XLSX

Libxlsxwriter API แบบโอเพนซอร์สช่วยให้นักพัฒนาซอฟต์แวร์สามารถสร้างและแก้ไขสเปรดชีต Excel XLSX ภายในแอปพลิเคชัน C ได้ API รองรับการเขียนข้อความ ตัวเลข สูตร และไฮเปอร์ลิงก์ไปยังเวิร์กชีตหลายแผ่นในไฟล์สเปรดชีต Excel คุณสามารถนำเข้าหรือส่งออกข้อมูลจากไฟล์ Excel ได้อย่างง่ายดาย และสามารถผสานหรือแยกแผ่นงาน ค้นหาข้อมูล และอื่นๆ อีกมากมาย

สร้างสเปรดชีต Excel ผ่าน 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;
}

การทำงานกับแผนภูมิ Excel

Libxlsxwriter API มีฟังก์ชันสำหรับการเพิ่มและแก้ไขแผนภูมิไปยังสเปรดชีต Excel โดยใช้คำสั่ง C คุณสามารถใช้ฟังก์ชันตัวทำเครื่องหมายแผนภูมิเพื่อสร้างและจัดการแผนภูมิได้ คุณยังสามารถเพิ่มเส้นแนวโน้มเพื่อระบุแนวโน้มในข้อมูลและแถบข้อผิดพลาดเพื่อระบุขอบเขตข้อผิดพลาดในข้อมูล คุณยังสามารถป้ายชื่อข้อมูลไปยังชุดแผนภูมิเพื่อระบุค่าของจุดข้อมูลที่ลงจุด คุณสามารถใช้คุณสมบัติการจัดรูปแบบแผนภูมิกับวัตถุแผนภูมิได้อย่างง่ายดาย

สร้างแผนภูมิในแผ่นงาน Excel ผ่าน 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);
}

ทำงานกับการตรวจสอบข้อมูล Excel

การตรวจสอบความถูกต้องของข้อมูลเป็นคุณลักษณะของ Excel ที่ช่วยให้นักพัฒนาสามารถควบคุมสิ่งที่ผู้ใช้ป้อนลงในเซลล์ Excel ตัวอย่างเช่น คุณสามารถจำกัดผู้ใช้ให้ป้อนตัวเลขระหว่าง 1 ถึง 6 หรือตรวจสอบให้แน่ใจว่าการป้อนข้อความในเซลล์มีอักขระน้อยกว่า 25 ตัว Libxlsxwriter API มีตัวเลือกมากมายในการตรวจสอบการป้อนข้อมูลของผู้ใช้ เช่น ค่าใดๆ จำนวนเต็ม ทศนิยม รายการ วันที่ เวลา ความยาวข้อความ หรือสูตรที่กำหนดเอง

แสดง ปรับแต่งข้อความเมื่อจํานวนเต็มไม่ใช่ 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";

การทำงานกับ VBA Macros

Libxlsxwriter API ช่วยให้นักพัฒนาซอฟต์แวร์สามารถเพิ่มไฟล์ VBA ที่มีฟังก์ชันหรือมาโครลงในเวิร์กบุ๊ก XLSX ได้อย่างง่ายดาย ไฟล์ Excel ที่มีฟังก์ชันและมาโครควรใช้ส่วนขยาย XLSM ไม่เช่นนั้น Excel จะบ่นและอาจไม่เปิดไฟล์ โดยปกติแล้วมาโคร VBA จะอ้างถึงเวิร์กบุ๊กและวัตถุในเวิร์กชีต หากไม่ได้ระบุชื่อรหัส VBA ไว้อย่างชัดเจน libxlsxwriter จะใช้ค่าเริ่มต้นของ Excel ของ ThisWorkbook และ Sheet1, Sheet2 เป็นต้น

เพิ่ม BA Marcos ไปยัง Excel Cookbook ภายใน C ปพลิเคชัน

 
#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);
}
 ไทย