轉帖|使用教程|編輯:龔雪|2021-07-15 10:00:39.240|閱讀 355 次
概述:SpreadJS支持導出很多Excel不支持的單元格類型,例如復選框單元格、單選列表、復選框列表等,本文將主要為大家介紹此功能。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
SpreadJS支持了很多Excel不支持的單元格類型,例如復選框單元格、單選列表、復選框列表等等,這為用戶在展示數據時提供了直觀易用的選擇方式。
然而,當用戶將包含此類型的的文件導出Excel時,就會發現出現了一定的問題。以復選框為例,在SpreadJS中用戶處于選中狀態,而當導出到Excel中時,會發現復選框區域的數值變成True了。
這是因為,復選框呈現出的小框屬于SpreadJS特有的樣式信息,而當getValue()時,取到的其實仍舊是true/false/null。而導出到Excel時,Excel并不支持這種樣式信息,獲取到的依舊是true/false/null。
本文以復選框為例,實現一個將復選框導出到Excel,并使其維持正常樣式的方案。
實現思路:
Step1: 導出前循環判斷sheet中是否包含復選框單元格;
sheet.getCellType(i,j) instanceof GC.Spread.Sheets.CellTypes.CheckBox
Step2: 判斷復選框時否為三態復選框,根據不同的狀態取對應的值;
let text = '' let checkbox = sheet.getCellType(i,j) if(sheet.getCellType(i,j).isThreeState()){ text = sheet.getValue(i,j) ? checkbox.textTrue() : ( sheet.getValue(i,j) == null ? checkbox.textIndeterminate():checkbox.textFalse() )}else{ text = sheet.getValue(i,j) ? sheet.textTrue() : sheet.textFalse() }
Step3:將復選框坐在單元格類型置空;
sheet.setCellType(i,j,nulll)
Step4: 設置文本樣式給對應的單元格。
sheet.getValue(i,j) ? sheet.setValue(i,j,'☑ ' + text) : sheet.setValue(i,j,'☐ ' + text)
通過上述四步,就可以完成將復選框導出Excel的功能了。
純前端表格控件SpreadJS,兼容 450 種以上的 Excel 公式,具備“高性能、跨平臺、與 Excel 高度兼容”的產品特性,備受華為、蘇寧易購、天弘基金等行業龍頭企業的青睞,并被中國軟件行業協會認定為“中國優秀軟件產品”。SpreadJS 可為用戶提供類 Excel 的功能,滿足表格文檔協同編輯、 數據填報、 類 Excel 報表設計等業務場景需求,極大的降低企業研發成本和項目交付風險。
本文轉載自
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: