C# EPPlus-未填充命名范围

C# EPPlus-未填充命名范围,c#,excel,epplus,C#,Excel,Epplus,我正在使用EPPLus打开Excel电子表格,并尝试从指定范围读取数据。指定的范围为空 是我用错了,还是EPPlus有问题 代码 var package = new ExcelPackage(); using (var stream = File.OpenRead(tmpExcel)) { package.Load(stream); } var worksheet = package.Wo

我正在使用EPPLus打开Excel电子表格,并尝试从指定范围读取数据。指定的范围为空

是我用错了,还是EPPlus有问题

代码

        var package = new ExcelPackage();

        using (var stream = File.OpenRead(tmpExcel))
        {
            package.Load(stream);
        }

        var worksheet = package.Workbook.Worksheets["Common-Lookup"];

        using (ExcelNamedRange namedRange = worksheet.Names["LupVerticalSettings"])
        {
            for (var row = namedRange.Start.Row; row <= namedRange.End.Row; row++)
            {
                for (var col = namedRange.Start.Column; col <= namedRange.End.Column; col++)
                {
                    _.Nv(worksheet.Cells[row, col].Address, worksheet.Cells[row, col].Text);
                    //worksheet.Cells[rowIndex, columnIndex].Value = "no more hair pulling";
                }
            }
        }
var package=new ExcelPackage();
使用(var stream=File.OpenRead(tmpExcel))
{
包。加载(流);
}
var工作表=package.Workbook.Worksheets[“通用查找”];
使用(ExcelNamedRange namedRange=工作表.Names[“LupVerticalSettings”])
{

对于(var row=namedRange.Start.row;row我解决了我的问题,我将把答案放在这里,供将来可能需要它的任何人使用

    var package = new ExcelPackage();

    using (var stream = File.OpenRead(tmpExcel))
    {
        package.Load(stream);
    }

    var worksheet = package.Workbook.Worksheets["Common-Lookup"];

    // Access Named Ranges from the ExcelWorkbook instead of ExcelWorksheet
    //using (ExcelNamedRange namedRange = worksheet.Names["LupVerticalSettings"])

    // use package.Workbook.Names instead of worksheet.Names
    using (ExcelNamedRange namedRange = package.Workbook.Names["LupVerticalSettings"])
    {
        for (var row = namedRange.Start.Row; row <= namedRange.End.Row; row++)
        {
            for (var col = namedRange.Start.Column; col <= namedRange.End.Column; col++)
            {
                _.Nv(worksheet.Cells[row, col].Address, worksheet.Cells[row, col].Text);
                //worksheet.Cells[rowIndex, columnIndex].Value = "no more hair pulling";
            }
        }
    }
var package=new ExcelPackage();
使用(var stream=File.OpenRead(tmpExcel))
{
包。加载(流);
}
var工作表=package.Workbook.Worksheets[“通用查找”];
//从Excel工作簿而不是Excel工作表中访问命名范围
//使用(ExcelNamedRange namedRange=工作表.Names[“LupVerticalSettings”])
//使用package.Workbook.Names而不是worksheet.Names
使用(ExcelNamedRange namedRange=package.Workbook.Names[“LupVerticalSettings”])
{

for(var row=namedRange.Start.row;row谢谢。我看到的所有其他示例都谈到了如何使用工作表。名称[]代码…工作簿。名称[]更改就是这样。谢谢。即使在创建新范围时也会发生这种情况-如果您将其添加到工作表中。命名并在Excel中查看,范围将仅限于该工作表。要从另一个工作表中使用命名范围,其范围必须是工作簿,在EPP中,可以按照您的建议将其添加到工作簿中。命名