功能: 服务端生成完整报告并保护单任务

- 使用 libxlsxwriter 常量内存导出 Excel\n- 增加全局任务占用提示与原始数据持久化\n- 保留运行时任务数据并更新接口文档
This commit is contained in:
cloud
2026-08-05 16:47:31 +08:00
parent 07274797af
commit 99ed321d24
2292 changed files with 134317 additions and 126 deletions
+8
View File
@@ -0,0 +1,8 @@
###############################################################################
#
# Makefile for libxlsxwriter library.
#
# Copyright 2014-2022, John McNamara, jmcnamara@cpan.org
#
include ../Makefile.unit
+15
View File
@@ -0,0 +1,15 @@
/*
* Test runner for xmlwriter using ctest.
*
* Copyright 2014-2022, John McNamara, jmcnamara@cpan.org
*
*/
#define CTEST_MAIN
#include "../ctest.h"
int main(int argc, const char *argv[])
{
return ctest_main(argc, argv);
}
@@ -0,0 +1,84 @@
/*
* Tests for the lib_xlsx_writer library.
*
* Copyright 2014-2022, John McNamara, jmcnamara@cpan.org
*
*/
#include "../ctest.h"
#include "../helper.h"
#include "../../../include/xlsxwriter/shared_strings.h"
// Test assembling a complete SharedStrings file.
CTEST(sst, sst01) {
char* got;
char exp[] =
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n"
"<sst xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" count=\"7\" uniqueCount=\"3\">"
"<si>"
"<t>neptune</t>"
"</si>"
"<si>"
"<t>mars</t>"
"</si>"
"<si>"
"<t>venus</t>"
"</si>"
"</sst>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_sst *sst = lxw_sst_new();
sst->file = testfile;
lxw_get_sst_index(sst, "neptune", LXW_FALSE);
lxw_get_sst_index(sst, "neptune", LXW_FALSE);
lxw_get_sst_index(sst, "neptune", LXW_FALSE);
lxw_get_sst_index(sst, "mars", LXW_FALSE);
lxw_get_sst_index(sst, "mars", LXW_FALSE);
lxw_get_sst_index(sst, "venus", LXW_FALSE);
lxw_get_sst_index(sst, "venus", LXW_FALSE);
lxw_sst_assemble_xml_file(sst);
RUN_XLSX_STREQ_SHORT(exp, got);
lxw_sst_free(sst);
}
// Test assembling a complete SharedStrings file.
CTEST(sst, sst02) {
char* got;
char exp[] =
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n"
"<sst xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" count=\"3\" uniqueCount=\"3\">"
"<si>"
"<t>abcdefg</t>"
"</si>"
"<si>"
"<t xml:space=\"preserve\"> abcdefg</t>"
"</si>"
"<si>"
"<t xml:space=\"preserve\">abcdefg </t>"
"</si>"
"</sst>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_sst *sst = lxw_sst_new();
sst->file = testfile;
// Test strings with whitespace that must be preserved.
lxw_get_sst_index(sst, "abcdefg", LXW_FALSE);
lxw_get_sst_index(sst, " abcdefg", LXW_FALSE);
lxw_get_sst_index(sst, "abcdefg ", LXW_FALSE);
lxw_sst_assemble_xml_file(sst);
RUN_XLSX_STREQ_SHORT(exp, got);
lxw_sst_free(sst);
}
@@ -0,0 +1,28 @@
/*
* Tests for the libxlsxwriter library.
*
* Copyright 2014-2022, John McNamara, jmcnamara@cpan.org
*
*/
#include "../ctest.h"
#include "../helper.h"
#include "../../../include/xlsxwriter/shared_strings.h"
// Test _xml_declaration().
CTEST(sst, xml_declaration) {
char* got;
char exp[] = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n";
FILE* testfile = lxw_tmpfile(NULL);
lxw_sst *sst = lxw_sst_new();
sst->file = testfile;
_sst_xml_declaration(sst);
RUN_XLSX_STREQ(exp, got);
lxw_sst_free(sst);
}