SheetJ正在读取具有节点的xlsx文件



嗨,我是nodeJs编程的新手,在我的项目中,我需要从xlsx文件中读取值,并使用SheetJs。

现在,我正在根据在线文档读取文件中的特定单元格。如果我尝试从文件xlsx中读取单元格A1,我没有错误,但如果我尝试读取其他单元格,我会收到错误消息。这是我的代码,取自文档,我试图读取文件的单元格C7,我不明白为什么将单元格改为读取会出错。

代码:

var XLSX = require('xlsx');
/* data is a node Buffer that can be passed to XLSX.read */
var workbook = XLSX.read('backendVoti_Fantacalcio_Stagione_2020-21_Giornata_13.xlsx', {type:'buffer'});
/* DO SOMETHING WITH workbook HERE */
var first_sheet_name = workbook.SheetNames[0];
console.log('Sheet name');
console.log(first_sheet_name);
console.log('End first_sheet_name');
var address_of_cell = 'C7';
var worksheet = workbook.Sheets[first_sheet_name];
console.log('Worksheet start');
console.log(worksheet);
console.log('Worksheet end');
var desired_cell = worksheet[address_of_cell];
console.log('Inizio cella desiderata');
console.log(desired_cell);
console.log('Fine cella desiderata');
var desired_value = (desired_cell ? desired_cell.v : undefined);
console.log('Inizio valore cella desiderata');
console.log(desired_value);
console.log('Fine valore cella desiderata');

xlsx文件包含梦幻足球的投票,如果你需要了解它是如何制作的,可以从这个链接下载(我不知道我是否可以发布链接,如果我错了,我道歉(:https://www.fantacalcio.it/voti-fantacalcio-serie-a

我的控制台输出:

Sheet name
Sheet1
End first_sheet_name
Worksheet start
{
A1: {
t: 's',
v: 'backendVoti_Fantacalcio_Stagione_2020-21_Giornata_13.xlsx'
},
'!ref': 'A1'
}
Worksheet end
Inizio cella desiderata
undefined
Fine cella desiderata
Inizio valore cella desiderata
undefined
Fine valore cella desiderata

两个问题:

  1. XLSX.read希望您传递文件的内容(您的注释甚至这样说,它应该是一个包含数据的节点缓冲区(。不过,你正在传递一个文件名,所以它的处理方式就像你有一个CSV文件,其中包含一个带有文件名的单元格。看看你的A1!这甚至不是正确的内容。您需要XLSX.readFile

  2. 路径中有一个反斜杠,但您忘记对其进行转义(反斜杠在字符串文字中有特殊含义(。在前面添加第二个反斜杠。

所以固定代码是:

var workbook = XLSX.readFile('backend\Voti_Fantacalcio_Stagione_2020-21_Giornata_13.xlsx') 

相关内容

  • 没有找到相关文章

最新更新