使用js xlsx匯出excel分頁和列印標題行

2021-10-05 23:18:53 字數 2404 閱讀 6777

前端匯出的excel需要進行分頁處理便於列印,為了方便顯示,列印時需要設定列印標題行(每一頁都會列印標題)

js-xlsx在文件中列出了一下幾個屬性,但沒有具體說明,經過實驗,可以得到其具體的作用

sheet[

'!rowbreaks'

]= rowbreak;

sheet[

'!printheader'

]= printheader;

js-xlsx匯出excel基本原理:即建立並修改符合excel規範的xml檔案即可

列印標題行實現的修改,目前引用的js-xlsx版本(0.8.11) 對列印標題行的處理是有問題的,無法正確設定,原因在於將配置好的!printheader屬性寫入xml檔案時,格式不符合excel定義。

正確的excel的xml格式如下:

<?xml version="1.0" encoding="utf-8"?>

xmlns

=""xmlns:r

=""xmlns:mc

=""xmlns:x15

=""mc:ignorable

="x15"

>

="xl"

lastedited

="6"

lowestedited

="6"

rupbuild

="14420"

/>

defaultthemeversion

="164011"

/>

<

mc:alternatecontent

>

<

mc:choice

requires

="x15"

>

x15ac:abspath

>

mc:choice

>

mc:alternatecontent

>

>

xwindow

="0"

ywindow

="0"

windowwidth

="28800"

windowheight

="13530"

/>

bookviews

>

>

name

="sheet1"

sheetid

="1"

r:id

="rid1"

/>

sheets

>

>

name

="_xlnm.print_titles"

localsheetid

="0"

>

sheet1!$1:$1definedname

>

definednames

>

calcid

="162913"

/>

>

uri=

"">

<

x15:workbookpr

charttrackingrefbase

="1"

/>

ext>

extlst

>

workbook

>

而0.8.11版本的js-xlsx的**定義的格式是錯誤的,按excel格式要求修改後即可正常使用,js-xlsx最新版本已經更改為正確的的配置了,感興趣可以看一下最新的**,除了修改配置外還加了其他判斷

// 0.8.11版本

// 這個地方excel格式配置有問題,**格式也有問題

var range =

"'"+ sheetname +

"'!"

+ sheet[

'!printheader'];

console.

log(

"!!!!"

+range)

o[o.length]=(

writextag

('definedname'

, range,))

// 修改後

//定義列印標題行 range格式為: sheetname!$1:$1

var range =

"'"+ sheetname +

"'!"

+'$'

+ sheet[

'!printheader'][

0]+':'

+'$'

+ sheet[

'!printheader'][

1]; o[o.length]=(

writextag

('definedname'

, range,))

;

js-xlsx

使用poi匯出excel

使用poi匯出excel,其中涉及到居中 字型加粗 合併單元格 namespace org examinee results inputname inputstream buffersize 4096 public class orgexamineeexportaction extends nati...

使用EasyPoi匯出Excel

excel模板來自自己寫死的乙個excel模板,相當於是使用者查詢資料,資料填充到乙個模板的excel裡,再匯出excel 建立模板 string a request.getsession getservletcontext getrealpath resource 河南能源化工集團安全監控系統聯網...

使用 easypoi 匯出excel

1 使用註解匯出excel 2 使用模板匯出excel 將workbook 寫出到response流中 效果如下 下面是我用到的兩個合併單元格的方法 豎向合併相同單元格,必須保證被合併的需要有兩個及兩個以上的單元格 mapmergemap key 列,value 依賴的列,沒有傳空 startrow...