色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c json導入excel

林玟書2年前8瀏覽0評論

JSON(JavaScript Object Notation)是一種輕量級數據交換格式,常用于Web應用中傳遞數據。Excel是一款廣泛使用的電子表格軟件,可以方便地對數據進行處理和管理。在某些情況下,需要將JSON數據導入Excel中進行進一步處理,下面介紹一種使用C語言實現的方法。

#include "cJSON.h"
#include "xls.h"
int main()
{
// 讀取JSON數據
FILE *fp = fopen("data.json", "r");
if (!fp)
{
printf("Failed to open file!\n");
return 1;
}
char *json_data;
long length;
fseek(fp, 0, SEEK_END);
length = ftell(fp);
fseek(fp, 0, SEEK_SET);
json_data = (char *)malloc(length + 1);
fread(json_data, 1, length, fp);
fclose(fp);
json_data[length] = '\0';
// 解析JSON數據
cJSON *json_obj = cJSON_Parse(json_data);
if (!json_obj)
{
printf("Failed to parse JSON data!\n");
return 1;
}
// 獲取數據行數和列數
cJSON *rows = cJSON_GetObjectItem(json_obj, "rows");
cJSON *cols = cJSON_GetObjectItem(json_obj, "cols");
int row_num = cJSON_GetNumberValue(rows);
int col_num = cJSON_GetNumberValue(cols);
// 新建Excel
xlsWorkBook *wb = xlsNewWorkbook();
xlsWorkSheet *ws = xlsAddSheet(wb, "Sheet1");
// 寫入數據
for (int i = 0; i< row_num; i++)
{
for (int j = 0; j< col_num; j++)
{
cJSON *data = cJSON_GetObjectItem(json_obj, "data");
cJSON *cell = cJSON_GetArrayItem(data, i * col_num + j);
xlsWriteStr(ws, i+1, j+1, cell->valuestring, NULL);
}
}
// 保存Excel文件
xlsSave(wb, "data.xls");
xlsDeleteSheet(wb, ws);
xlsClose(wb);
// 釋放內存
cJSON_Delete(json_obj);
free(json_data);
return 0;
}

以上代碼使用了開源的cJSON庫和xlslib庫,需要在項目中導入相關頭文件和庫文件。其中,通過cJSON_Parse函數解析JSON數據,通過cJSON_GetObjectItem和cJSON_GetNumberValue函數獲取JSON數據中的行數和列數,并根據行數和列數寫入Excel數據。最后,通過xlsSave函數保存Excel文件,并釋放內存。