【问题标题】:how to import excel file (XLSX) to mysql using nodejs如何使用nodejs将excel文件(XLSX)导入mysql
【发布时间】:2015-10-17 13:40:56
【问题描述】:

我正在尝试将 excel 文件中的数据导入 mysql,就像使用 nodejs 的行冒号一样 是否有任何我可以学习的参考资料或 nodejs 中的任何模块可以完成我的工作或任何示例代码

我在谷歌搜索过,但我只看到了 mongodb 和 python 的解决方案,

【问题讨论】:

    标签: javascript mysql node.js excel


    【解决方案1】:

    我已经开发了一个插件来做到这一点。这是 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);
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        我想到的几个方法:

        1. 将要导入的 excel 工作表保存为 csv 格式,然后将它们导入 mysql:cf. How to import CSV file to MySQL table 到目前为止,这是最简单的方法,但您可能会遇到引号和逗号以及其他特性的问题。

        2. 使用 javascript excel 解析器读取 excel 文件并直接使用代码执行 mysql 数据库中的更新:cf。 https://github.com/SheetJS/js-xlsx 该选项更复杂,但如果您有很多文件要复制,它可以让您自动执行任务。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-10-04
          • 2020-04-13
          • 1970-01-01
          • 2021-08-03
          • 1970-01-01
          • 1970-01-01
          • 2018-02-16
          • 1970-01-01
          相关资源
          最近更新 更多