簡體   English   中英

如何使用nodejs將excel文件(XLSX)導入mysql

[英]how to import excel file (XLSX) to mysql using nodejs

我正在嘗試將Excel文件中的數據導入到mysql中,就像使用nodejs進行行冒號一樣,是否有我可以學習的引用或執行我工作的任何nodejs模塊或任何示例代碼?

我已經在Google中搜索過,但只看到了mongodb和python的解決方案,

我想到的幾種方法:

  1. 以csv格式保存要導入的Excel工作表,然后將其導入mysql:cf。 如何將CSV文件導入到MySQL表到目前為止,這是最簡單的方法,但是您可能會遇到引號,逗號和其他特質的麻煩。

  2. 使用javascript excel解析器讀取excel文件並直接用代碼執行mysql數據庫中的更新:cf。 https://github.com/SheetJS/js-xlsx這個選項比較復雜,但是如果要復制很多文件,它可以使任務自動化。

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); 

我已經開發了一個可以做到這一點的插件。 這是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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM