以下是 anatomy.c 文件的逐行解释,包含详细的注释:
/*
* Anatomy of a simple libxlsxwriter program.
*
* Copyright 2014-2024, John McNamara, jmcnamara@cpan.org
*
*/
#include "xlsxwriter.h" // 包含 libxlsxwriter 库的头文件
int main() {
/* 创建一个新的工作簿,文件名为 "anatomy.xlsx"。 */
lxw_workbook *workbook = workbook_new("anatomy.xlsx");
/* 添加一个工作表,名称为 "Demo"。 */
lxw_worksheet *worksheet1 = workbook_add_worksheet(workbook, "Demo");
/* 添加一个工作表,使用 Excel 的默认名称 "Sheet2"。 */
lxw_worksheet *worksheet2 = workbook_add_worksheet(workbook, NULL);
/* 添加一些单元格格式。 */
lxw_format *myformat1 = workbook_add_format(workbook);
lxw_format *myformat2 = workbook_add_format(workbook);
/* 设置第一个格式为粗体。 */
format_set_bold(myformat1);
/* 设置第二个格式为货币格式。 */
format_set_num_format(myformat2, "$#,##0.00");
/* 加宽第一个列(A列),使其更清晰。 */
worksheet_set_column(worksheet1, 0, 0, 20, NULL);
/* 写入一些未格式化的数据。 */
worksheet_write_string(worksheet1, 0, 0, "Peach", NULL);
worksheet_write_string(worksheet1, 1, 0, "Plum", NULL);
/* 写入格式化的数据。 */
worksheet_write_string(worksheet1, 2, 0, "Pear", myformat1);
/* 格式可以重用。 */
worksheet_write_string(worksheet1, 3, 0, "Persimmon", myformat1);
/* 写入一些数字。 */
worksheet_write_number(worksheet1, 5, 0, 123, NULL);
worksheet_write_number(worksheet1, 6, 0, 4567.555, myformat2);
/* 写入到第二个工作表。 */
worksheet_write_string(worksheet2, 0, 0, "Some text", myformat1);
/* 关闭工作簿,保存文件并释放内存。 */
lxw_error error = workbook_close(workbook);
/* 检查是否有错误发生。 */
if (error)
printf("Error in workbook_close().\n"
"Error %d = %s\n", error, lxw_strerror(error));
return error;
}
这个程序展示了如何使用 libxlsxwriter 库创建一个包含多个工作表和格式化数据的 Excel 文件。通过这些步骤,你可以创建复杂且格式化的 Excel 文件。