Mysql 使用nodejs上传Excel

Mysql 使用nodejs上传Excel,mysql,node.js,excel,csv,xls,Mysql,Node.js,Excel,Csv,Xls,我正在上传一个Excel文件并插入到mysql表中。我的代码正在使用Linux。但我希望它也能和其他设备一起运行,所以我预测Xls不起作用 如何转换为CSV或任何其他方式,以便我们可以上传支持任何版本的Excel或CSV function getfileDetails(req, res) { var sampleFile, fileInfo = {}; var date1=new Date(); var currdatetime = date1.getF

我正在上传一个Excel文件并插入到mysql表中。我的代码正在使用Linux。但我希望它也能和其他设备一起运行,所以我预测Xls不起作用

如何转换为CSV或任何其他方式,以便我们可以上传支持任何版本的Excel或CSV

function getfileDetails(req, res) {
    var sampleFile, fileInfo = {};
        var date1=new Date();
         var currdatetime = date1.getFullYear()+"-"+(date1.getMonth()+1)+"-"+date1.getDate()+" "+date1.getHours()+":"+date1.getMinutes()+":"+date1.getSeconds();
        console.log(currdatetime);
    var MyData = [];
            if (!req.files) {
            res.send('No files were uploaded.');
            return;
          }   
          sampleFile = req.files.fileInputXLSX1;

        var datetimestamp = Date.now();

          console.log("Uploaded -- ",sampleFile);
          var fileExtn = sampleFile.name.split(".").pop();
          var extractedFilename = sampleFile.name.slice(0, sampleFile.name.lastIndexOf('.'));
          var userid=req.headers['userid'];
          var uploadFileName = extractedFilename+'_'+userid+'_'+datetimestamp+'.'+fileExtn;

          console.log("uploadFileName -- ",uploadFileName);
          fileInfo = {
            "name": uploadFileName,
            "mimetype": sampleFile.mimetype
          }
          // Use the mv() method to place the file somewhere on your server  
          sampleFile.mv(__dirname+'/Details/'+uploadFileName, function(err) {
            if (err) {
                res.status(500).send(err);
                }
                var parseXlsx = require('excel');
                parseXlsx(__dirname+'/Details/'+uploadFileName, function(err, data) {
                    if(err) throw err;          
                    // data is an array of arrays
                    else{
                        if(data!=null)
                    {
                        var queryString= "Truncate table `details`;"
                        connection.query(queryString, function(err,result){
                                        if(err) { 
                                            res.write(JSON.stringify(err));
                                                res.end();
                                                } else {
                                                    res.send('File uploaded!');
                                                        }
                                                });
                    }
                            for (var index = 1; index < data.length; index++) 
                            {
                                MyData.push(data[index][0],data[index][1],data[index][2],data[index][3], data[index][4], data[index][5],data[index][6],data[index][7],data[index][8],data[index][9]);
                                var queryString="INSERT INTO `details`(name,tname,fname,timestamp) VALUES ('"+data[index][0]+"','"+data[index][1]+"','"+data[index][2]+"','"+currdatetime+"')";
                                    connection.query(queryString, function(err,result){
                                        if(err) { 
                                            res.write(JSON.stringify(err));
                                                res.end();
                                                } else {
                                                    res.send('File uploaded!');
                                                        }
                                                });
                            }   

                        }
                });         
         if(err) {
           res.status(500);
            res.send(err);
               }
        });

}
函数getfileDetails(req,res){
var sampleFile,fileInfo={};
var date1=新日期();
var currdatetime=date1.getFullYear()+“-”+(date1.getMonth()+1)+“-”+date1.getDate()+“+date1.getHours()+”:“+date1.getMinutes()+”:“+date1.getSeconds();
console.log(currdatetime);
var MyData=[];
如果(!req.files){
res.send('未上载任何文件');
返回;
}   
sampleFile=req.files.fileInputXLSX1;
var datetimestamp=Date.now();
log(“上传--”,sampleFile);
var fileExtn=sampleFile.name.split(“.”.pop();
var extractedFilename=sampleFile.name.slice(0,sampleFile.name.lastIndexOf('.');
var userid=req.headers['userid'];
var uploadFileName=extractedFilename+'''''+'userid+''''''+'datetimestamp+'..'+fileExtn;
log(“uploadFileName--”,uploadFileName);
文件信息={
“名称”:上传文件名,
“mimetype”:sampleFile.mimetype
}
//使用mv()方法将文件放在服务器上的某个位置
sampleFile.mv(uu dirname+'/Details/'+uploadFileName,函数(err){
如果(错误){
资源状态(500)。发送(错误);
}
var parseXlsx=require('excel');
parseXlsx(uu dirname+'/Details/'+uploadFileName,函数(err,data){
如果(错误)抛出错误;
//数据是数组的数组
否则{
如果(数据!=null)
{
var queryString=“Truncate table`details`;”
查询(查询字符串,函数(错误,结果){
如果(错误){
res.write(JSON.stringify(err));
res.end();
}否则{
res.send('上传文件!');
}
});
}
对于(var index=1;index
请帮助,我是Node的新手。

此代码工作正常,请尝试此。。
var xlsx=require('node-xlsx');
var fs=需要('fs');
var obj=xlsx.parse(_dirname+'/new.xls');//解析文件
var行=[];
var writest=“”;
//循环遍历所有数据行
对于(变量i=0;i
嘿,你能试试npm模块吗。这将解决您的问题@TB.M

使用npm安装节点xlsx npm安装节点xlsx,然后将其与excel文件一起使用。我正在尝试,但在mycode中它没有给出正确的输出..你能来聊天吗?不,我现在很忙,请不要介意,我们可以在5小时后聊天。检查它没有处理值中的逗号,在我给出代码的问题中,你需要添加双引号和包含双引号的转义值。在这一点上,我需要添加你的。我应该如何添加给定的代码。这是不会发生的。
var xlsx = require('node-xlsx');
    var fs = require('fs');
    var obj = xlsx.parse(__dirname + '/new.xls'); // parses a file
    var rows = [];
    var writeStr = "";

    //looping through all datarow
    for(var i = 0; i < obj.length; i++)
    {
        var dataRow = obj[i];
        //loop through all rows in the sheet
        for(var j = 0; j < dataRow['data'].length; j++)
        {
                //add the row to the rows array
                rows.push(dataRow['data'][j]);
        }
    }

    //creates the csv string to write it to a file
    for(var i = 0; i < rows.length; i++)
    {
        writeStr = writeStr + rows[i].join(",") + "\n";
    }

    //writes to a file, but you will presumably send the csv as a      
    //response instead
    fs.writeFile(__dirname + "/data.csv", writeStr, function(err) {
        if(err) {
            return console.log(err);
        }
        console.log("data.csv was saved in the current directory!");
    });