vue xlsx組件 導出的excel表頭插入內容

主要就是sheet_add_dom這個方法, dom是帶有table標籤元素的dom節點。
timeData是個二維數組:[["條件1","條件2"],["值1","值2"]];
如果是要在表格內容行裏面插入內容,可以直接在與表格綁定的對象上,插入內容就可以了。
/*timeData 是二維數組*/
  getExcelWithInfo(timeData,dom, title = '默認標題', fn = () => {})
  {
    //得到一個worksheet對象
    //var data =[["按單據日期", "開始時間:", "2023-5-12", "結束時間:", "2023-5-31"]];
    const ws = XLSX.utils.aoa_to_sheet(timeData);

    //追加一個表格dom到 worksheet對象
    //origin 默認值是從表格的最開始即A1開始追加,會覆蓋前一個表格
    //origin:-1 表示從上一個表格的末尾行追加
    //origin: {c:4, r:0} cellAddress 會從這個單元格的位置開始追加
    XLSX.utils.sheet_add_dom(ws, document.querySelector(dom), { origin: -1,raw: true })//原樣格式

    let wb = XLSX.utils.book_new()

    var filename = title + ".xlsx"
    XLSX.utils.book_append_sheet(wb, ws, 'sheet1')
    let wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'array', bookSST: true, })
    fn && fn()
    try
    {
      FileSaver.saveAs(new Blob([wbout], { type: 'application/octet-stream' }), filename)
    }
    catch (e)
    {
      if (typeof console !== 'undefined') console.log(e, wbout)
    }
    return wbout
  },

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章