6

我正在使用 package.json 创建一个 excel 文件Excel4node。通过使用此代码

// Require library
var excel = require('excel4node');

// Create a new instance of a Workbook class
var workbook = new excel.Workbook();

// Add Worksheets to the workbook
var worksheet = workbook.addWorksheet('Sheet 1');
var worksheet2 = workbook.addWorksheet('Sheet 2');

// Create a reusable style
var style = workbook.createStyle({
  font: {
    color: '#FF0800',
    size: 12
  },
  numberFormat: '$#,##0.00; ($#,##0.00); -'
});

// Set value of cell A1 to 100 as a number type styled with paramaters of style
worksheet.cell(1,1).number(100).style(style);

// Set value of cell B1 to 300 as a number type styled with paramaters of style
worksheet.cell(1,2).number(200).style(style);

// Set value of cell C1 to a formula styled with paramaters of style
worksheet.cell(1,3).formula('A1 + B1').style(style);

// Set value of cell A2 to 'string' styled with paramaters of style
worksheet.cell(2,1).string('string').style(style);

// Set value of cell A3 to true as a boolean type styled with paramaters of style but with an adjustment to the font size.
worksheet.cell(3,1).bool(true).style(style).style({font: {size: 14}});

workbook.write('Excel.xlsx');

通过使用此代码创建一个 excel 表,现在我想要的是。我想在excel表中写数组。

worksheet.getCell('A1').value = 's.no';

通过使用代码。它正在将数据写入工作表,但它正在逐个单元格地写入数据。在 Excel 表中写入数组需要花费大量时间

    data=[{s.no:1,Name:'xxx',Age:'22'},
{s.no:2,Name:'yyy',Age:'12'},
    {s.no:3,Name:'zzz',Age:'32'}]

我想在excel表中写数组。

 workbook.write('Excel.xlsx',data);

我给了这样的,但这也不起作用。任何人都可以解决这个问题。

4

3 回答 3

0

为什么你不使用

sheet.cell(row , col ).string(`your value`).style(`your style`);
于 2018-12-18T15:12:20.373 回答
0

const array_elements = [{
    fullname: "name 1",
    game1point: 10,
    game2point: 12
  },
  {
    fullname: "name 2",
    game1point: 15,
    game2point: 17
  },
]



let startRow = 3;
for (let i = 0; i < array_elements.length; i++) {
  // FULLNAME - FIRST COLUMN
  worksheet.cell(startRow + i, 1).string(array_elements[i].fullname);

  // SECOND COLUMN
  worksheet.cell(startRow + i, 2).number(array_elements[i].game1point);


  // THIRD COLUMN
  worksheet.cell(startRow + i, 3).number(array_elements[i].game2point);


  gameCol++;

}

于 2021-10-26T06:47:14.217 回答
0

我要做的是创建一个excel4node图层。大意是:

// the type arg is the cell write method you want to use such as string, number, or formula
const writeCell(wb, ws, row, col, value, type, style){
  ws.cell(row, col)[type](value).style(wb.createStyle(style))
}

const xl = require('excel4node')
const wb = xl.createWorkbook()

// TODO: track your row and column indices with arrays. let's assume that we are 
// in the outer array and the inner array or row array is called "data"
// this would write out a row of data
data.forEach((d, idx) => {
  writeCell(wb, ws, rowIdx, idx + 1, d.value, d.type, d.style)
}
于 2020-05-01T17:46:09.297 回答