Unity NPOI 無法讀取xlsx

2022-01-31 15:51:22 字數 903 閱讀 6644

在做編輯器開發時,需要在unity editor下直接讀取excel原始檔,首先想到的是通過npoi去讀取,但是遇到無法讀取xlsx格式,只能讀取xls格式的問題。

我的環境

unity 2018.3.6f1

npoi 2.4.1

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

資料issues:

在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,則替換掉。

如果遇到npoi建立出來的xlsx無法開啟,可嘗試以下方法(注:wps可以開啟,但ms office無法開啟)

應該資料流寫入的 是 .xlsx 的資料模式但是 用的是.xls的字尾名,導致資料識別錯誤

建立xlsx格式和xls格式 使用不同的介面

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

xlsx 2007格式: xssfworkbook wk = new xssfworkbook(fs); 就可以了

使用c#+npoi編寫的配置表解析器:tableml excel編譯/解析工具

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

查詢 excelfile.cs

phpExcel類庫讀取csv檔案 和xlsx檔案

操作csv objreader new phpexcel reader csv objreader setinputencoding gb2312 objreader setdelimiter objphpexcel objreader load upload month.csv objsheet ...

SparkStreaming無法讀取hdfs檔案

如下 package com.spark import org.apache.spark.rdd.rdd import org.apache.spark.streaming.dstream.dstream import org.apache.spark.streaming.import org.ap...

presto無法讀取hive on tez產生的表

原因 在hive中使用tez模式時,發現tez的輸出結果在對應表目錄中,生成了子目錄,造成未配置tez的hive客戶端對該錶進行讀取時,無法獲取到資料。檢視對應的sql,發現存在insert union操作,檢視往上資訊,發現tez對於insert union操作會進行優化,通過並行加快速度,為防止...