ExcelJS 冻结行

ExcelJS freeze rows

我正在尝试冻结 ExcelJS 中的行,但无法使其正常工作。

我都在尝试

worksheet.views = [
{state: 'frozen', ySplit: 1}
];

workbook.addWorksheet(sheetName, {
views: [
{state: 'frozen', ySplit: 1}
]
});

但它不起作用。

我在打开电子表格时也收到 "We found a problem with...Do you want to recover as much.." 警告。

有人让这个工作吗?我只想冻结第 7 行。我可以在 Excel 本身做到这一点

here 报告了一个问题,似乎说它不是 Excel 本身的功能。但我想知道为什么它也会破坏文件。

试试这个:

workbook.addWorksheet(sheetName, {
    views: [{ state: "frozen", ySplit: 1 }],
});

对我有用。

更多详情:

const Excel = require("exceljs");

const writeFile = async (sheetName, columns, list, file) => {
  let workbook = new Excel.Workbook();
  let sheet = workbook.addWorksheet(sheetName, {
    views: [{ state: "frozen", ySplit: 1 }],
  });
  sheet.columns = columns;

  for (const record of list) {
    sheet.addRow(record);
  }
  workbook.xlsx.writeFile(file);
};


const test = async () => {
  const columns = [
    { header: "Column1", key: "column1" },
    { header: "Column2", key: "column2" },
    { header: "Column3", key: "column3" },
  ];
  let list = [];
  for (let i = 1; i < 100; i++) {
    let record = {};
    record.column1 = `line${i}_column1`;
    record.column2 = `line${i}_column2`;
    record.column3 = `line${i}_column3`;
    list.push(record);
  }
  const file = "c:/temp/test.xlsx";
  await writeFile("sheet1", columns, list, file);
};
test();