尝试使用EPPlus读取Excel文件可在服务器上运行,但不能通过浏览器运行

ern*_*est 9 .net c# asp.net excel epplus

当我发布我的项目并在服务器运行它,它工作.EPPlus找到了所有4个工作表,通过它们进行迭代,并将我的数据上传到SQL.

但是当我通过我的浏览器或我的同事浏览器运行它时,它会显示0个工作表.

知道为什么会这样吗?那时代码并不多,但是这部分是:

using (ExcelPackage package = new ExcelPackage(new FileInfo(strFile)))
{
    if (package.Workbook.Worksheets.Count <= 0)
        strError = "Your Excel file does not contain any work sheets";
    else
    {
        foreach (ExcelWorksheet worksheet in package.Workbook.Worksheets)
        {
Run Code Online (Sandbox Code Playgroud)

mas*_*son 16

EPPlus可以将文件加载到内存中.你不是那样做的.我想如果你这样做,你就不太可能在从文件系统中读取它时遇到麻烦.您可以将上传的文件转换为字节数组,而不必将其作为文件首先使用,但在我的示例中,我将打开现有文件.如果您提供了如何上传文件的代码,我可以更新我的示例.

byte[] file = File.ReadAllBytes(@"C:\file.xlsx");
using (MemoryStream ms = new MemoryStream(file))
using (ExcelPackage package = new ExcelPackage(ms))
{
    if (package.Workbook.Worksheets.Count == 0)
        strError = "Your Excel file does not contain any work sheets";
    else
    {
        foreach (ExcelWorksheet worksheet in package.Workbook.Worksheets)
        {
Run Code Online (Sandbox Code Playgroud)