EPPlus,find并设置命名范围的值

我一直在试图用ExcelPackage(3.0.1)库设置一个命名范围的值(在这个例子中是一个命名的单元格),它应该是这样简单的:

ExcelNamedRange er = xlPackage.Workbook.Names["Customer"]; er.Value = "Foo Bar"; 

我显然是做错了 – 有没有人有我可以遵循的例子

谢谢

我查找了ExcelPackage文档,看看Names []集合返回的是什么types,发现documentatios即将到来,或者至less是他们在2007年说过的。

我build议你使用EPPlus,这是一个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"; } } } 

我不得不围绕使用单元格值来解决这个问题。

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