Unity NPOI 沒法讀取xlsx

遇到問題

在作編輯器開發時,須要在Unity Editor下直接讀取Excel源文件,首先想到的是經過npoi去讀取,可是遇到沒法讀取xlsx格式,只能讀取xls格式的問題。html

個人環境git

unity 2018.3.6f1github

npoi 2.4.1編輯器

xlsx指excel 2007格式 ,xls指excel2003格式工具

資料issues: https://github.com/tonyqus/npoi/issues/182excel

解決方案

在vs工程中安裝npoi,找到依賴項sharpziplib,在packages/目錄下htm

(注:nuget安裝包【npoi.nupkg】並不包含sharpzip.dll)blog

使用npoi對應版本的SharpZipLib,放到unity中,就可解決,好比:接口

NPOI.2.4.1/net40/*.dllip

SharpZipLib.0.86.0

注意:必定要使用npoi對應版本的sharpziplib,若是原unity工程中有sharpziplib,則替換掉。

沒法建立xlsx格式

若是遇到npoi建立出來的xlsx沒法打開,可嘗試如下方法(注:wps能夠打開,但ms office沒法打開)

應該數據流寫入的 是 .xlsx 的數據模式可是 用的是.xls的後綴名,致使數據識別錯誤

建立xlsx格式和xls格式 使用不一樣的接口

xls 2003格式: HSSFWorkbook wk = new HSSFWorkbook(fs);

xlsx 2007格式: XSSFWorkbook wk = new XSSFWorkbook(fs); 就能夠了

C#配置表解析器

使用C#+npoi編寫的配置表解析器:TableML Excel編譯/解析工具

開源代碼

在npoi的基礎之上,又封裝了一層,便於簡單地讀取excel

https://github.com/mr-kelly/KSFramework

查找 ExcelFile.cs

相關文章
相關標籤/搜索