【问题标题】:Error while uploading .xlsx file using ExcelDataReader使用 ExcelDataReader 上传 .xlsx 文件时出错
【发布时间】:2016-12-16 21:06:48
【问题描述】:

我正在做 asp.net MVC 项目。

我使用ExcelDataReader组件读取excel文件记录。

现在,当我将项目发布到服务器并使用上传器上传 .xlsx 文件时,我收到下面提到的异常消息。本地部署没有错误,但服务器。

访问路径 '\Microsoft Corporation\Internet Information Services\7.5.7600.16385' 被拒绝。

我得到错误的代码是:

if (personsFile.FileExtension == ".xls")
{
     Stream st = new MemoryStream(personsFile.FileArray);
     reader = ExcelReaderFactory.CreateBinaryReader(st);
}
else if (personsFile.FileExtension == ".xlsx")
{
     Stream st = new MemoryStream(personsFile.FileArray);
     //exception occured on under line
     reader = ExcelReaderFactory.CreateOpenXmlReader(st);
}

但是当我上传一个 .xls 文件时,我没有任何错误。

如何解决 .xlsx 扩展的问题?

【问题讨论】:

  • personsFile的数据类型和值是什么?
  • @PankajKapare PersonsFile 是一个对象,它有 2 个属性,一个是 FileExtension,它是字符串,二是 FileArray,它是字节数组
  • 你试过用 CreateReader 或 CreateBinaryReader 代替 CreateOpenXmlReader 吗?
  • @PankajKapare 是的,并抛出异常。如果您看到组件创建者的示例,您将看到使用 CreateOpenXmlReader 进行 xlsx 扩展。此外,我的本地没有错误

标签: asp.net-mvc excel iis access-denied exceldatareader


【解决方案1】:

这很可能是由于 ExcelDataReader 2.x 在处理之前将 xlsx 存档提取到 %TEMP%。当前 3.0 的 pre-alpha 不再执行此操作。见https://github.com/ExcelDataReader/ExcelDataReader/releases

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-12
    • 2012-02-17
    • 2012-02-04
    • 2012-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多