0

尝试使用 cellValue= worksheet.getRow(1).getCell(1).value;

和 cellValue=console.log(worksheet.getCell('A1'))

请在我的代码下面找到:

cellread2=function(){
        var Excel; 
        var filePath = path.resolve(__dirname,'E:/excel.xlsx');
         if (typeof require !== 'undefined') {
                    Excel = require('C:/Users/user/AppData/Roaming/npm/node_modules/exceljs/dist/exceljs'); 
         }
        var wb = new Excel.Workbook();
        console.log(wb);
        wb.xlsx.readFile(filePath);
        var worksheet = wb.getWorksheet('Sheet1');
        //cellValue= worksheet.getRow(1).getCell(1).value;//Error :TypeError: Cannot read property 'getRow' of undefined
        cellValue=console.log(worksheet.getCell('A1'))// TypeError: Cannot read property 'getCell' of undefined
         console.log(cellValue);


    } 
4

2 回答 2

0

现有库代码存在问题。如果你想让它工作,你将不得不对 file 中的现有代码进行一些更改AppData\Roaming\npm\node_modules\exceljs\dist\es5\xlsx\xform\sheet\worksheet-xform.js。将第 284 行的代码替换为以下内容:

if (drawing.anchors && drawing.anchors.length > 0) {
        drawing.anchors.forEach(function (anchor) {              
          if (anchor.medium && anchor.range) {
            var image = {
              type: 'image',
              imageId: anchor.medium.index,
              range: anchor.range
            };
            model.media.push(image);
          }
        });
      }

至于读取文件的代码,请使用以下代码。

注意:我全局安装了 exceljs 库,我使用的是 4.6.1 版本

var path = require('path');
var Excel = require('exceljs');
var cellread2 = function () {
  var filePath = path.resolve('E:', 'excel.xlsx');
  var wb = new Excel.Workbook();
  wb.xlsx.readFile(filePath).then(function (data) {
    var worksheet = wb.getWorksheet('Sheet1');
    var cellValue = worksheet.getRow(1).getCell(1).value;
    console.log('cellValue', cellValue);
  }).catch(function (e) {
    console.log(e);
  });
}
cellread2();
于 2017-05-25T10:31:30.253 回答
0

它可能是由于对象被映射到 Excel 工作表而不是文本数据而发生的。

请创建另一个 Excel 表并再次检查将解决此问题。

下面给出了使用 node.js 读取 excel 表的示例代码,

var Excel = require('exceljs');

var wb = new Excel.Workbook();
var path = require('path');
var filePath = path.resolve(__dirname,'sample.xlsx');

wb.xlsx.readFile(filePath).then(function(){

    var sh = wb.getWorksheet("Sheet1");

    sh.getRow(1).getCell(2).value = 32;
    wb.xlsx.writeFile("sample2.xlsx");
    console.log("Row-3 | Cell-2 - "+sh.getRow(3).getCell(2).value);

    console.log(sh.rowCount);
    //Get all the rows data [1st and 2nd column]
    for (i = 1; i <= sh.rowCount; i++) {
        console.log(sh.getRow(i).getCell(1).value);
        console.log(sh.getRow(i).getCell(2).value);
    }
});
于 2018-06-29T06:32:07.607 回答