我正在使用3.1版本的EPPlus库来尝试访问Excel文件中的工作表.当我尝试以下任何一种方法时,我得到一个System.ArgumentException : An item with the same key has already been added.
using (ExcelPackage package = new ExcelPackage(new FileInfo(sourceFilePath)))
{
var worksheet = package.Workbook.Worksheets[0];
// OR
foreach (var excelWorksheet in package.Workbook.Worksheets)
...
}
Run Code Online (Sandbox Code Playgroud)
异常堆栈:
System.ArgumentException : An item with the same key has already been added.
at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value)
at OfficeOpenXml.ExcelNamedRangeCollection.Add(String Name, ExcelRangeBase Range)
at OfficeOpenXml.ExcelWorkbook.GetDefinedNames()
at OfficeOpenXml.ExcelPackage.get_Workbook()
Run Code Online (Sandbox Code Playgroud)
这似乎是非常基本的功能,如此破碎..我做错了什么?
Pat*_*Pat 24
我相信excel会从索引1而不是索引0来处理工作表
var worksheet = package.Workbook.Worksheets[0];
Run Code Online (Sandbox Code Playgroud)
应该
var worksheet = package.Workbook.Worksheets[1];
Run Code Online (Sandbox Code Playgroud)
阅读第一个工作表.
BMa*_*mus 18
此外,您可以通过引用名称来管理它们:
var worksheet = package.Workbook.Worksheets["Sheet1"];
Run Code Online (Sandbox Code Playgroud)
至少使用Epplus 3.1.3.0,您只需使用以下内容即可访问第一个工作表.
ExcelWorksheet workSheet = excel.Workbook.Worksheets.First();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
39587 次 |
| 最近记录: |