在XLSX导出过程中,在工作表的开头插入新行/注释

时间:2019-06-20 11:36:23

标签: node.js xlsx

我是node.js的新手,可以将数据写入工作簿,但是在数据开头插入注释时遇到了问题。 请注意,数据是从数据库中获取的,但请注意是静态的或从会话中获取的。

var export = XLSX.utils.json_to_sheet(this.obj);
    var wb = XLSX.utils.book_new() // make Workbook of Excel
    // add Worksheet to Workbook    
    XLSX.utils.book_append_sheet(wb, export, 'sheet1') // sheet1 is name of Worksheet  
    XLSX.utils.sheet_add_json(wb.Sheets.sheet1,
      [
        {note: "This is a note"},
      ],
      {
        header: ["note"],
        skipHeader:true,
        origin: "A1"
      }
    );
    // export Excel file
    XLSX.writeFile(wb, 'book.csv') // name of the file is 'book.xlsx'

在上面的代码中,我试图使用sheet_add_json添加注释,但它会覆盖A1处的现有数据。虽然在尝试使用空单元格时效果很好

以下期望以excel格式输出。

这是一个注释

Name    RollNo  Age
Abc      101    10
def      102    15
xyz      103    20

但是根据当前的代码,我得到

This is a Note  RollNo  Age
Abc              101    10
def              102    15
xyz              103    20

1 个答案:

答案 0 :(得分:0)

从文档“ XLSX.utils.sheet_add_json获取对象数组并更新现有的工作表对象。它遵循与json_to_sheet相同的过程并接受options参数:”它将仅更新,也可以添加为新行在底部,使用原点:-1。

尝试一下:

//create sheet with empty json/there might be other ways to do this
export = XLSX.utils.json_to_sheet({});

//start frm A2 here 
XLSX.utils.sheet_add_json(wb.Sheets.sheet1,
  [{
    Name: 'Abc',
    RollNo: 101,
    Age: 10
   },
   {
    Name: 'def',
    RollNo: 102,
    Age: 15
   },
   {
    Name: 'xyz',
    RollNo: 103,
    Age: 20
   }],
  {
    header: ["note"],
    skipHeader:true,
    origin: "A2"
  }
);

//then add ur txt
 XLSX.utils.sheet_add_json(wb.Sheets.sheet1,
  [
    {note: "This is a note"},
  ],
  {
    header: ["note"],
    skipHeader:true,
    origin: "A1"
  }
);