Записывать данные, начиная с указанной строки * / 1000 *, используя модуль excel js с node.js - PullRequest
0 голосов
/ 23 февраля 2020

Я хочу записать данные в файл xlsx, начиная с указанной c строки / столбца. Я нашел много сайтов о Excel js, но ни один не помогает мне.

for (let i = 0; i < people.length; i++) {
    let {name, age} = people[i]

    worksheet.addRow({name: name, age: age})
}

worksheet.eachRow(function(row, rowNumber) {
    row.eachCell(function(cell, colNumber) {
        // some code
    }
}

Ответы [ 2 ]

0 голосов
/ 10 марта 2020

Вы можете использовать Excel JS API, пример кода показывает, как записать данные в специальную строку / столбец. Суть можно найти по адресу: https://gist.github.com/lumine2008/796915d73a56a9e89ff9393c77845759

 await Excel.run(async (context) => {
    context.workbook.worksheets.getItemOrNullObject("Sample").delete();
    const sheet = context.workbook.worksheets.add("Sample");

    const data = [
      ["Product", "Qty", "Unit Price", "Total Price"],
      ["Almonds", 2, 7.5, "=C3 * D3"],
      ["Coffee", 1, 34.5, "=C4 * D4"],
      ["Chocolate", 5, 9.56, "=C5 * D5"]
    ];

    const range = sheet.getRange("B2:E5");
    range.values = data;
    range.format.autofitColumns();

    const header = range.getRow(0);
    header.format.fill.color = "#4472C4";
    header.format.font.color = "white";

    sheet.activate();

    await context.sync();
0 голосов
/ 23 февраля 2020

Я не знаю другого пути, но мог бы справиться с этим следующим образом:

const ExcelJS = require('exceljs');
const workbook = new ExcelJS.Workbook();
const sheet = workbook.addWorksheet('Node-Cheat');
// keep {} where you wan to skip the column
sheet.columns = [{}, {key: 'first', header: 'First'}, {}, {key: 'last', header: 'Last'}];
// keep {} where you wan to skip the row
const data = [{first:'John', last: 'Doe'}, {}, {first:'Jenny', last: 'Smith'}];

data.forEach((item, i) => {
  sheet.addRow(item);
});

workbook.xlsx.writeFile('node-cheat.xlsx').then(() => {
    console.log('Finished...');
});

Для полного выполнения примера клона node-cheat и запуска node write_xlsx.js.

PS При использовании этого подхода требования, насколько я понимаю, могут быть выполнены.

Снимок экрана:

enter image description here

...