微信小程序开发教程:nodejs后台,将Excel数据导入Mysql数据库
然后使用multer中间件处理上传的文件,接着使用xlsx模块读取Excel文件的内容。对于每一行数据,我们构造一个INSERT查询并执行它。最后,我们发送一个响应,告知用户文件已上传且数据已插入。最后非常重要的一点:你的Excel文件的列名,必须要与数据库表info2的列名匹配,否则这个代码可能无法正常工作。在上面的代码中,我们新建了一个文件夹uploads,用来保存excel表格。开发带有后台
·
开发带有后台的小程序时,数据很多的时候,就需要将数据批量导入数据库。
我在node端写了如下前端代码,以便导入EXCEL表格:
<div class="col-md-6 text-right">
<a href="#" class="btn btn-primary" id="addBtnExcel">导入数据</a>
</div>
<!-- 提交表格数据 -->
<div class="dialog isUploadExcel"></div>
<div class="panel dialog-wrap isUploadExcel">
<div class="panel-heading">
<h3 class="panel-title">上传数据(功能暂未实现)</h3>
<div class="right">
<button class="close"><i class="lnr lnr-cross"></i></button>
</div>
</div>
<form method="POST" action="/uploadExcel" enctype="multipart/form-data" class="demo-button1" >
<button><input type="file" name="excel_file" id="excel_file" required/></button><br/><br/>
<button class="btn btn-primary" type="submit" value="上传">提交数据</button>
</form>
</div>
<!-- 提交表格数据 结束 -->
接下来,开始写上传excel的API接口文件:
var express = require('express');
var router = express.Router();
var multer = require('multer');
var upload = multer({ dest: 'uploads/' });
var xlsx = require('xlsx');
var db = require('../sql.js');
router.post('/', upload.single('excel_file'), function(req, res, next) {
var workbook = xlsx.readFile(req.file.path);
var sheet_name_list = workbook.SheetNames;
var xlData = xlsx.utils.sheet_to_json(workbook.Sheets[sheet_name_list[0]]);
xlData.forEach(function(row){
var query = 'INSERT INTO info2 SET ?';
db.query(query, row, function (error, results, fields) {
if (error) throw error;
// Neat!
});
});
db.query('select * from info2',function (err,data) {
var pager = {};
//当前第几页,默认第一页
pager.pageCurrent = 1;
//总的记录数
pager.maxNum = data.length;
//每页显示多少条记录
pager.pageSize = 8;
//一共有多少页
pager.pageCount = parseInt( Math.ceil( pager.maxNum / pager.pageSize ) );
//修改了传递的数据数量,分页显示
var dataList = data.slice(
(pager.pageCurrent-1) * pager.pageSize ,
(pager.pageCurrent-1) * pager.pageSize + pager.pageSize
);
if(err){
throw err;
}else {
res.render('info1',{
info:dataList,
pager:pager
})
}
})
//res.send('File uploaded and data inserted!');
});
module.exports = router;
在上面的代码中,我们新建了一个文件夹uploads,用来保存excel表格。
然后使用multer中间件处理上传的文件,接着使用xlsx模块读取Excel文件的内容。对于每一行数据,我们构造一个INSERT查询并执行它。最后,我们发送一个响应,告知用户文件已上传且数据已插入。
最后非常重要的一点:你的Excel文件的列名,必须要与数据库表info2的列名匹配,否则这个代码可能无法正常工作。
更多推荐
已为社区贡献3条内容
所有评论(0)