【Unity】关于使用NPOI读取不同版本的excel表格问题解决方案

关于使用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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值