前端匯出的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...