关于使用NPOI读取不同版本的excel表格问题解决方案
excel表格不同的版本有不同的读取方式,其中2003-2007版本需要使用XSSFWorkbook来进行读取,而2007+版本需要使用HSSFWorkbook来进行读取,否则会出错。网上查找了很多次,最后还是决定用我之前有用过的try…catch方法来解决。如果读取2007+版本出了错误则用2003版本进行尝试,不然就是都不行(草(一种植物))。
FileStream fs = File.Open(filePath, FileMode.Open, FileAccess.Read);
ISheet sheet=null;
try
{
HSSFWorkbook wk = new HSSFWorkbook(fs);
sheet = wk.GetSheetAt(0);
Debug.Log("Excel2007+");
}
catch
{
fs.Dispose();
fs = File.Open(filePath, FileMode.Open, FileAccess.Read);
XSSFWorkbook wk = new XSSFWorkbook(fs);
sheet = wk.GetSheetAt(0);
Debug.Log("Excel2003-2007");
}
if(sheet==null)
{
Debug.Log("读取失败草了");
return null;
}
导出后可能出现的问题
1.PlatformNotSupportedException: Operation is not supported on this platform.
解决方案我使用的是https://blog.csdn.net/qq_44925385/article/details/106461232
2.NotSupportedException: Encoding 936 data could not be found.
解决方案我使用的是https://blog.csdn.net/htwzl/article/details/104790843