Blazor net8.0 和 EPPlus 7.06 工作表位置超出范围

问题描述 投票:0回答:1

我正在尝试在 net8.0 和最新版本的 EPPlus (7.0.6) 下使用 Blazor 服务器读取现有电子表格。我尝试阅读的电子表格有一(一)个工作表。当我检查工作表集合时,它的计数为零。

我尝试使用位置 ID 为零

using var package = new ExcelPackage("spreadsheet.xlsx");
var sheet = package.Workbook.Worksheets[0];

然后我尝试命名它

using var package = new ExcelPackage("spreadsheet.xlsx");
var sheet = package.Workbook.Worksheets["name"];

我知道这在 net7.0 中有效,因为我编写了一个控制台应用程序来执行相同的操作。但我需要它在我的 Blazor 应用程序中工作。很明显,它没有看到/读取表格。这是 EPPlus 中的错误吗?

我也尝试过以前版本的 EPPlus,结果相同。

完整代码

@using OfficeOpenXml

<PageTitle>Home</PageTitle>

<h1>Test Spreadsheet</h1>

@if (errors.Any())
{
    <h2>Errors</h2>
    <ul class="text-danger">
        @foreach (var e in errors)
        {
            <li>@e</li>
        }
    </ul>
}

@code {
    private List<string> errors = new();

    protected override void OnInitialized()
    {
        errors.Clear();

        try
        {
            using var package = new ExcelPackage("spreadsheet.xlsx");
            var sheet = package.Workbook.Worksheets[0];
        }
        catch (Exception ex)
        {
            errors.Add(ex.Message);
        }
    }
}

Results when this code is run

blazor epplus .net-8.0
1个回答
0
投票

很抱歉,我只是自己解决了这个问题。即使 ExcelPackage 对象不为空,我也需要完整路径而不仅仅是访问实际文件的相对路径。

我对大家表示感谢。

© www.soinside.com 2019 - 2024. All rights reserved.