用的是koa2框架,但好好處理一下,用express框架也是可以的。匯出的excel是xlsx的格式,解析匯入excel的有xlsx和csv格式。通常匯入excel是要上傳的,然後獲取檔案的路徑,這裡省略。強烈不建議匯入的excel直接儲存到資料庫,建議將資料發到頁面上確認沒問題,再儲存,防止匯入垃圾資料。匯入的excel裡也不要什麼樣式,防止不符合解析規範。建議用xlsx格式的excel匯入,解析比較簡單。
我的excel內容
index.html 的**
doctype html>
<
html
lang
="en"
>
<
head
>
<
meta
charset
="utf-8"
>
<
title
>excel的匯入匯出
title
>
<
script
src=""
integrity
="sha256-zosebrlbnqzlpnkikedrpv7loy9c27hhq+xp8a4mxaq="
crossorigin
="anonymous"
>
script
>
head
>
<
body
>
<
hr/>
匯出excel:
<
button
id="exportexcel"
>提交
button
>
<
hr/>
匯入xlsx格式:
<
button
id="importexcelxlsx"
>提交
button
>
<
hr/>
匯入csv格式:
<
button
id="importexcecsv"
>提交
button
>
<
script
>
$(function
() );
$("#importexcelxlsx
").on(
"click",
function
() ,
success :
function
(data)
});});
$("#importexcecsv
").on(
"click",
function
() ,
success :
function
(data)
});});
})script
>
body
>
html
>
const koa = require("koa");匯出的excelconst router = require("koa-router")();
const fs=require("fs");
const nodeexcel = require('excel-export');
const csv=require('csv');
const dict = require('gbk-dict').init();//
呼叫gbk-dict中的init這個方法
const xlsx = require('node-xlsx');
koa();
router.get("/",(ctx)=>);
//匯出excel,xlsx格式
router.get('/exportexcel',async (ctx) =>,,,
,];return
exceldata;
}//匯出
async function
exportdata(v) ;
conf.name = "mysheet";//
**名 let alldata = new
array();
for(let i = 0;i)
//決定列名和型別
conf.cols =[,,,];
conf.rows = alldata;//
填充資料
let result =nodeexcel.execute(conf);
//最後3行express框架是這樣寫
////
res.setheader("content-disposition", "attachment; filename=" + "report.xlsx");
'binary');
let data = new buffer(result,'binary');
ctx.set("content-disposition", "attachment; filename=" + "report.xlsx");
ctx.body=data;
}let r=await readydata();
r=await exportdata(r);
});//
匯入excel,xlsx格式
const xlsxfile="e:/xlsx格式.xlsx";
router.post('/importexcelxlsx',async (ctx) =>);
}async
function
readdata(v) ]
console.log("資料 = ",v[0]);//
資料 =
console.log("要上傳的資料 = ",v[0].data);//
要上傳的資料 = [ [ '姓名', '年齡' ], [ '張三', 20 ], [ '李四', 30 ] ]
ctx.body=v;
}let r=await analysisdata();
r=await readdata(r);
});//
匯入excel,csv格式
const csvfile="e:/csv格式.csv";
router.post('/importexcelcsv',async (ctx) =>);//
呼叫csv模組的parse方法
let input = fs.createreadstream(csvfile);//
呼叫fs模組的createreadstream方法
input.on("data",function
(data));
input.on("close",function
());
//讀取操作的快取裝不下,只能分成幾次傳送,每次傳送會觸發乙個data事件,傳送結束會觸發end事件
parser.on('readable',function
() });
parser.on('finish',function
() )
});}
async
function
readdata(v)
let r=await analysisdata();
r=await readdata(r);
});console.log("listen on 3000");
nodejs實現 excel報表的匯出。
主要涉及技術點如下nodejs ejs express mysql node xlsl模組。為了方便大家閱讀,我特地在 裡寫了詳細注釋 再上傳 在之前需要npm install 安裝所需要的模組別忘了哦。不囉嗦了直接上圖 sql指令碼如下create table doctor user uuid v...
nodejs讀寫excel內容
支援讀寫excel的node.js模組 node xlsx 基於node.js解析excel檔案資料及生成excel檔案,僅支援xlsx格式檔案 excel parser 基於node.js解析excel檔案資料,支援xls及xlsx格式檔案 excel export 基於node.js將資料生成匯...
C 匯出Excel 匯出資料到Excel模板檔案裡
using excel microsoft.office.interop.excel using system.reflection missing 開啟模板檔案,得到workbook物件 workbook excel.workbooks.open templatepath,missing,miss...