EPPlus - 命名区域未填充

4

我正在使用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";
                }
            }
        }

以下是Excel的样子

Excel命名区域

空命名区域

空命名区域

1个回答

15

我解决了我的问题,我会在这里发布答案,以便将来可能需要它的人。

    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";
            }
        }
    }

谢谢。我看到的所有其他示例都是关于使用Worksheet.Names[]代码... Workbook.Names[]更改正是我需要的东西。 - Eric Burdo
1
谢谢这个!即使创建一个新范围,如果将其添加到“工作表.names”并在Excel中查看它,作用域也只会是该表。要能够从另一个工作表使用命名范围,其作用域必须为Workbook,并且在EPP中可通过执行您建议的操作来实现 - 将其添加到workbook.names。 - NP3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接