我正在尝试在 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);
}
}
}
很抱歉,我只是自己解决了这个问题。即使 ExcelPackage 对象不为空,我也需要完整路径而不仅仅是访问实际文件的相对路径。
我对大家表示感谢。