当前位置: 首页 > 面试题库 >

使用node.js读取Excel文件

池照
2023-03-14
问题内容

好的,所以我正在使用该FileUploader模块将我的文件从angular上传到my REST API

var uploader = $scope.uploader = new FileUploader({
    url: api.getUrl('uploadCompetence',null)
});

这被发送到以下POST功能:

        router.route('/api/uploadCompetence')
        .post(function (req, res) {

        // This is where i want to read the file

            var competence = Competence.build(req.body.location);
            competence.add(function (success) {
                    res.json({message: 'quote created!'});
                },
                function (err) {
                    res.status(err).send(err);
                });
        })

现在,我的目标是读取excel文件,然后将每一行添加到数据库中。

但是我不太确定我如何从Node.js我的服务器中读取文件并调试了服务器,找不到文件,但是正在从我的Angular应用程序中调用api。

谁能向正确的方向推动我?:)


问题答案:

有几种不同的库可以解析Excel文件(.xlsx)。我将列出两个我觉得有趣并且值得研究的项目。

节点xlsx

Excel解析器和生成器。它是流行项目 JS-XLSX
的包装,它是Office Open XML规范中的纯JavaScript实现。

node-xlsx项目页面

解析文件示例

var xlsx = require('node-xlsx');

var obj = xlsx.parse(__dirname + '/myFile.xlsx'); // parses a file

var obj = xlsx.parse(fs.readFileSync(__dirname + '/myFile.xlsx')); // parses a buffer

ExcelJS

读取,操作并将电子表格数据和样式写入XLSX和JSON。这是一个活跃的项目。在撰写本文时,最新提交是在9个小时前。我自己还没有测试过,但是api看起来很广泛,具有很多可能性。

exceljs项目页面

代码示例:

// read from a file
var workbook = new Excel.Workbook();
workbook.xlsx.readFile(filename)
    .then(function() {
        // use workbook
    });

// pipe from stream
var workbook = new Excel.Workbook();
stream.pipe(workbook.xlsx.createInputStream());


 类似资料:
  • 问题内容: 我需要在终端中传递一个文本文件,然后从中读取数据,我该怎么办? 如何从终端进入路径,如何在另一侧阅读? 问题答案: 您将要使用数组访问命令行参数以获取文件名,并使用FileSystem模块(fs)来读取文件。例如: 为了稍微分解一下,通常长度为2,第零个为“节点”解释器,第一个为节点当前正在运行的脚本,其后的项目在命令行中传递。从argv中提取文件名后,就可以使用文件系统函数读取文件并

  • 问题内容: 我尝试使用具有96GB RAM的服务器上的 fs.readFileSync 将大文件( 〜6Gb )加载到内存中。 问题是它失败并显示以下错误消息 RangeError:尝试分配大于最大大小的缓冲区:0x3fffffff字节 不幸的是,我没有发现增加Buffer的可能性,这似乎是一个常数。 如何克服此问题并使用Node.js加载大文件? 谢谢! 问题答案: 来自一个快乐的常见问题解答:

  • 问题内容: 我需要找到一种最佳方法,即使用node.js实时读取正在写入文件的数据。麻烦的是,Node是一艘飞速前进的船,这使得很难找到解决问题的最佳方法。 我要做什么我 有一个Java进程正在执行某项操作,然后将其执行的结果写入文本文件。运行通常需要5分钟到5个小时的时间,整个时间都会写入数据,并且可以达到相当高的吞吐率(大约1000行/秒)。 我想实时读取此文件,然后使用节点聚合数据并将其写入

  • 问题内容: 我正在尝试读取Excel文件(Office 2003)。有一个Excel文件需要上载并对其内容进行解析。 通过Google,我只能找到以下相关(且主题不足)的答案:生成Excel文件,读取Excel XML文件,读取Excel CSV文件或不完整的废弃项目。我拥有Office 2003,因此如果我需要那里的任何文件,都可以使用它们。它已安装在我的盒子上,但尚未安装,也无法安装在我的共享

  • 问题内容: 请问如何通过cucumber读取excel、word、pdf文件? 问题答案: 反对法的f

  • 我正在写一些代码导入Excel文件到数据库。文件可能很大(数千行),所以我使用事件API。POI版本为3.9 我这样打开文件:FileInputStream fin=new FileInputStream(file); 有些文件在最后一行引发FileNotFoundException。的确,如果我用7zip打开那些文件,就没有条目,而是有。 可以在Excel2007中成功打开相同的文件。当我用手动