【发布时间】:2015-10-17 13:40:56
【问题描述】:
我正在尝试将 excel 文件中的数据导入 mysql,就像使用 nodejs 的行冒号一样 是否有任何我可以学习的参考资料或 nodejs 中的任何模块可以完成我的工作或任何示例代码
我在谷歌搜索过,但我只看到了 mongodb 和 python 的解决方案,
【问题讨论】:
标签: javascript mysql node.js excel
我正在尝试将 excel 文件中的数据导入 mysql,就像使用 nodejs 的行冒号一样 是否有任何我可以学习的参考资料或 nodejs 中的任何模块可以完成我的工作或任何示例代码
我在谷歌搜索过,但我只看到了 mongodb 和 python 的解决方案,
【问题讨论】:
标签: javascript mysql node.js excel
我已经开发了一个插件来做到这一点。这是 npm 模块的链接: https://www.npmjs.com/package/xlsx-mysql
还有github链接: https://github.com/Rizwaan-Company/xlsx-mysql
示例代码:
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.包含您的配置文件。
看看下面的代码。
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);
【讨论】:
我想到的几个方法:
将要导入的 excel 工作表保存为 csv 格式,然后将它们导入 mysql:cf. How to import CSV file to MySQL table 到目前为止,这是最简单的方法,但您可能会遇到引号和逗号以及其他特性的问题。
使用 javascript excel 解析器读取 excel 文件并直接使用代码执行 mysql 数据库中的更新:cf。 https://github.com/SheetJS/js-xlsx 该选项更复杂,但如果您有很多文件要复制,它可以让您自动执行任务。
【讨论】: