how to import excel file (XLSX) to mysql using nodejs
我试图将excel文件中的数据导入到mysql,就像使用nodejs的行冒号一样
有什么参考我可以学习或nodejs中的任何模块,我的工作或任何示例代码
我在谷歌搜索但我见过只有mongodb和python的解决方案,
我想到的一些方法:
以csv格式保存要导入的Excel工作表,然后将其导入mysql:cf。如何将CSV文件导入MySQL表
到目前为止,这是最简单的方法,但是您可能会遇到引号,逗号和其他特质的麻烦。
使用javascript excel解析器读取excel文件并直接使用mysql数据库中的更新代码执行:cf。 https://github.com/SheetJS/js-xlsx
该选项更复杂,但如果您要复制许多文件,它允许您自动执行任务。
我开发了一个插件来做到这一点。这是npm模块的链接:
https://www.npmjs.com/package/xlsx-mysql
和github链接:
https://github.com/Rizwaan-Company/xlsx-mysql
示例代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | const XLSXtoMYSQL = require('xlsx-mysql'); var optionsZ = { mysql: { host: '127.0.0.1', user: 'root', database: 'test', password: 'password', port: '3306' }, csv: { delimiter: '+' } } var locationZ = __dirname + '/file.xlsx'; var waitT = 1000; XLSXtoMYSQL(locationZ,optionsZ,waitT); |
1.从表单上载csv文件。
2.包括您的配置文件。
看一下下面的代码。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | var express = require('express'); var app = express(); var bodyParser = require('body-parser'); var path = require('path'); var http = require('http'); var formidable = require('formidable'); var fs = require('fs'); var csvParser = require('csv-parse'); var cm = require('csv-mysql'); var connection=require('./config'); // Create application/x-www-form-urlencoded parser var urlencodedParser = bodyParser.urlencoded({ extended: false }) app.use(express.static('public')); app.get('/csvupload.html', function (req, res) { res.sendFile(path.resolve("../view/csvupload.html")); }) app.post('/csvfileupload', urlencodedParser, function (req, res) { if (req.url == '/csvfileupload') { var form = new formidable.IncomingForm(); form.parse(req, function (err, fields, files) { var oldpath = files.filetoupload.path; var newpath = 'C:/xampp/htdocs/nodejs/mvc/csvupload/uploads/' + files.filetoupload.name; fs.rename(oldpath, newpath, function (err) { if (err) throw err; res.write('File uploaded and moved!'); res.end(); }); fs.readFile(oldpath, { encoding: 'utf-8' }, function(err, csvData) { if (err) { console.log(err); } csvParser(csvData, { delimiter: ',' }, function(err, data) { if (err) { console.log(err); } else { console.log(data); var sql ="INSERT INTO customer (id,name,address,designation) VALUES ?"; connection.query(sql, [data], function(err) { if (err) throw err; conn.end(); }); } }); }); }); } }).listen(8080); |