資源簡(jiǎn)介
讀取Excel顯示到HTML頁(yè)面上,可以實(shí)現(xiàn)上傳Excel數(shù)據(jù)到數(shù)據(jù)庫(kù)里的功能

代碼片段和文件信息
/*?xlsx.js?(C)?2013-present??SheetJS?--?http://sheetjs.com?*/
#include?
#include?
#include?
#include?“duktape.h“
#define?FAIL_LOAD?{?\
duk_push_undefined(ctx);?\
perror(“Error?in?load_file“);?\
return?1;?\
}
static?char?*read_file(const?char?*filename?size_t?*sz)?{
FILE?*f?=?fopen(filename?“rb“);
if(!f)?return?NULL;
long?fsize;?{?fseek(f?0?SEEK_END);?fsize?=?ftell(f);?fseek(f?0?SEEK_SET);?}
char?*buf?=?(char?*)malloc(fsize?*?sizeof(char));
*sz?=?fread((void?*)?buf?1?fsize?f);
fclose(f);
return?buf;
}
static?duk_int_t?eval_file(duk_context?*ctx?const?char?*filename)?{
size_t?len;?char?*buf?=?read_file(filename?&len);
if(!buf)?FAIL_LOAD
duk_push_lstring(ctx?(const?char?*)buf?(duk_size_t)len);
duk_int_t?retval?=?duk_peval(ctx);
duk_pop(ctx);
return?retval;
}
static?duk_int_t?load_file(duk_context?*ctx?const?char?*filename?const?char?*var)?{
size_t?len;?char?*buf?=?read_file(filename?&len);
if(!buf)?FAIL_LOAD
duk_push_external_buffer(ctx);
duk_config_buffer(ctx?-1?buf?len);
duk_put_global_string(ctx?var);
return?0;
}
static?duk_int_t?save_file(duk_context?*ctx?const?char?*filename?const?char?*var)?{
duk_get_global_string(ctx?var);
duk_size_t?sz;
char?*buf?=?(char?*)duk_get_buffer_data(ctx?-1?&sz);
if(!buf)?return?1;
FILE?*f?=?fopen(filename?“wb“);?fwrite(buf?1?sz?f);?fclose(f);
return?0;
}
#define?FAIL(cmd)?{?\
printf(“error?in?%s:?%s\n“?cmd?duk_safe_to_string(ctx?-1));?\
duk_destroy_heap(ctx);?\
return?res;?\
}
#define?DOIT(cmd)?duk_eval_string_noresult(ctx?cmd);
int?main(int?argc?char?*argv[])?{
duk_int_t?res?=?0;
/*?initialize?*/
duk_context?*ctx?=?duk_create_heap_default();
/*?duktape?does?not?expose?a?standard?“global“?by?default?*/
DOIT(“var?global?=?(function(){?return?this;?}).call(null);“);
/*?load?library?*/
res?=?eval_file(ctx?“shim.min.js“);
if(res?!=?0)?FAIL(“shim?load“)
res?=?eval_file(ctx?“xlsx.full.min.js“);
if(res?!=?0)?FAIL(“l(fā)ibrary?load“)
/*?get?version?string?*/
duk_eval_string(ctx?“XLSX.version“);
printf(“SheetJS?library?version?%s\n“?duk_get_string(ctx?-1));
duk_pop(ctx);
/*?read?file?*/
res?=?load_file(ctx?argv[1]?“buf“);
if(res?!=?0)?FAIL(“file?load“)
printf(“Loaded?file?%s\n“?argv[1]);
/*?parse?workbook?*/
DOIT(“wb?=?XLSX.read(buf?{type:‘buffer‘?cellNF:true});“);
DOIT(“ws?=?wb.Sheets[wb.SheetNames[0]]“);
/*?print?CSV?*/
duk_eval_string(ctx?“XLSX.utils.sheet_to_csv(ws)“);
printf(“%s\n“?duk_get_string(ctx?-1));
duk_pop(ctx);
/*?change?cell?A1?to?3?*/
DOIT(“ws[‘A1‘].v?=?3;?delete?ws[‘A1‘].w;“);
/*?write?file?*/
#define?WRITE_TYPE(BOOKTYPE)?\
DOIT(“newbuf?=?(XLSX.write(wb?{type:‘a(chǎn)rray‘?bookType:‘“?BOOKTYPE?“‘}));“);\
res?=?save_file(ctx?“sheetjsw.“?BOOKTYPE?“newbuf“);\
if(res?!=?0)?FAIL(“save?sheetjsw.“?BOOKTYPE)
WRITE_TYPE(“xlsb“)
WRITE_TYPE(“xlsx“)
WRITE_TYPE(“xls“)
WRITE_TYPE(“csv“)
/*?cleanup?*/
duk_destroy_heap(ctx);
return?res;
}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-05-15?19:49??js-xlsx-master\
?????文件?????????518??2019-05-15?19:49??js-xlsx-master\.eslintrc
?????文件?????????501??2019-05-15?19:49??js-xlsx-master\.flowconfig
?????文件?????????116??2019-05-15?19:49??js-xlsx-master\.fossaignore
?????文件?????????315??2019-05-15?19:49??js-xlsx-master\.gitattributes
?????文件?????????464??2019-05-15?19:49??js-xlsx-master\.gitignore
?????文件??????????89??2019-05-15?19:49??js-xlsx-master\.gitmodules
?????文件?????????114??2019-05-15?19:49??js-xlsx-master\.jscs.json
?????文件??????????39??2019-05-15?19:49??js-xlsx-master\.jshintrc
?????文件?????????693??2019-05-15?19:49??js-xlsx-master\.npmignore
?????文件????????1512??2019-05-15?19:49??js-xlsx-master\.spelling
?????文件????????1363??2019-05-15?19:49??js-xlsx-master\.travis.yml
?????文件????????2897??2019-05-15?19:49??js-xlsx-master\CHANGELOG.md
?????文件????????2304??2019-05-15?19:49??js-xlsx-master\CONTRIBUTING.md
?????文件???????11356??2019-05-15?19:49??js-xlsx-master\LICENSE
?????文件????????7663??2019-05-15?19:49??js-xlsx-master\Makefile
?????文件??????109723??2019-05-15?19:49??js-xlsx-master\README.md
?????目錄???????????0??2019-05-15?19:49??js-xlsx-master\bin\
?????文件????????9893??2019-05-15?19:49??js-xlsx-master\bin\xlsx.njs
?????目錄???????????0??2019-05-15?19:49??js-xlsx-master\bits\
?????文件???????????5??2019-05-15?19:49??js-xlsx-master\bits\.npmignore
?????文件?????????246??2019-05-15?19:49??js-xlsx-master\bits\00_header.js
?????文件??????????25??2019-05-15?19:49??js-xlsx-master\bits\01_version.js
?????文件????????3169??2019-05-15?19:49??js-xlsx-master\bits\02_codepage.js
?????文件??????????37??2019-05-15?19:49??js-xlsx-master\bits\03_consts.js
?????文件????????1317??2019-05-15?19:49??js-xlsx-master\bits\04_ba
?????文件????????2255??2019-05-15?19:49??js-xlsx-master\bits\05_buf.js
?????文件?????????457??2019-05-15?19:49??js-xlsx-master\bits\09_types.js
?????文件???????36841??2019-05-15?19:49??js-xlsx-master\bits\10_ssf.js
?????文件????????3268??2019-05-15?19:49??js-xlsx-master\bits\11_ssfutils.js
?????文件???????49030??2019-05-15?19:49??js-xlsx-master\bits\18_cfb.js
............此處省略505個(gè)文件信息
評(píng)論
共有 條評(píng)論