C# EPPlus,查找并设置命名范围的值

C# EPPlus,查找并设置命名范围的值,c#,excel,epplus,C#,Excel,Epplus,我一直在尝试使用ExcelPackage(3.0.1)库设置命名范围(在本例中为单个命名单元格)的值,这应该是一个简单的方法: ExcelNamedRange er = xlPackage.Workbook.Names["Customer"]; er.Value = "Foo Bar"; 我显然做错了——有谁能给我举个例子吗 谢谢我不得不改用单元格值 using (ExcelPackage xlPackage = new ExcelPackage(newFile)) {

我一直在尝试使用ExcelPackage(3.0.1)库设置命名范围(在本例中为单个命名单元格)的值,这应该是一个简单的方法:

ExcelNamedRange er = xlPackage.Workbook.Names["Customer"];
er.Value = "Foo Bar";
我显然做错了——有谁能给我举个例子吗


谢谢

我不得不改用单元格值

using (ExcelPackage xlPackage = new ExcelPackage(newFile))
            {
                foreach (ExcelWorksheet worksheet in xlPackage.Workbook.Worksheets)
                {

                    var dimension = worksheet.Dimension;
                    if (dimension == null) { continue; }
                    var cells = from row in Enumerable.Range(dimension.Start.Row, dimension.End.Row)
                                from column in Enumerable.Range(dimension.Start.Column, dimension.End.Column)
                                //where worksheet.Cells[row, column].Value.ToString() != String.Empty
                                select worksheet.Cells[row, column];
                    try
                    {
                        foreach (var excelCell in cells)
                        {
                            try
                            {
                                if (excelCell.Value.ToString().Equals("[Customer]")) { excelCell.Value = "Customer Name"; }

                            }
                            catch (Exception) { }
                        }

                    }
                    catch (Exception a) { Console.WriteLine(a.Message); }
                }

我查找了ExcelPackage文档,以查看[]集合返回的类型名称,发现documentatios很快就会出现,或者至少2007年他们是这么说的

我建议您使用EPPlus wich,它是一个excel库(仅限xlsx),对我来说非常有用

现在,要为命名范围内的每个单元格设置一个值:

ExcelWorksheet sheet = _openXmlPackage.Workbook.Worksheets["SheetName"];
using (ExcelNamedRange namedRange = sheet.Names["RangeName"])
{
    for (int rowIndex = Start.Row; rowIndex <= namedRange.End.Row; rowIndex++)
    {
        for (int columnIndex = namedRange.Start.Column; columnIndex <= namedRange.End.Column; columnIndex++)
        {
            sheet.Cells[rowIndex, columnIndex].Value = "no more hair pulling";                        
        }
    }
}
ExcelWorksheet sheet=_openXmlPackage.工作簿.Worksheets[“SheetName”];
使用(ExcelNamedRange namedRange=sheet.Names[“RangeName”])
{

对于(int rowIndex=Start.Row;rowIndex我的范围是一个单元格。上面的代码声称namedRange.Start.Row是-1。它应该适用于一个单元格,但我不是100%确定。我看到你设法解决了你的问题,很高兴你这么做了。我在这里留下我的答案,以防有命名范围问题的人有兴趣尝试ePlus。您好。这是不是o设置您将搜索的范围?这样您就不会搜索空单元格?我需要这样的内容吗?