Unity NPOI 無法讀取xlsx


遇到問題

在做編輯器開發時,需要在Unity Editor下直接讀取Excel源文件,首先想到的是通過npoi去讀取,但是遇到無法讀取xlsx格式,只能讀取xls格式的問題。

我的環境

unity 2018.3.6f1

npoi 2.4.1

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

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

解決方案

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

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

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

NPOI.2.4.1/net40/*.dll

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM