工作表位置超出范围。连接关闭。使用 EPPLUS 时
Worksheet position out of range. Connection Closed. When using EPPLUS
我正在尝试使用 EPPLUS 4.0.3 打开一个 XLSX 文件作为模板(我什至使用了一个空白的 XLSX 文件)。
如果我不打开模板文件(空白的或真实的)而只是创建一个新的工作簿并创建一个 sheet,它工作正常。或者,如果我打开模板文件,并创建一个新作品sheet,那么它就可以正常工作。只有当我尝试访问模板中的 FIRST sheet 时,我才收到错误消息:Worksheet位置超出范围。
像这样访问第一个作品sheet:workBook.Worksheets.First()
不起作用。
First is no longer a definition.
所以我尝试通过名称访问第一个作品sheet,并通过此方法workBook.Worksheets[1]
同时使用 0 和 1 来尝试获取第一个 sheet。
我的代码:
var existingTemplate = new FileInfo(_ExcelTemplateFilePath);
using (ExcelPackage p = new ExcelPackage(existingTemplate)) {
// Get the work book in the file
ExcelWorkbook workBook = p.Workbook;
ExcelWorksheet ws = workBook.Worksheets[1];
// MY OTHER EXCEL CELL CODE HERE
}}
有谁知道如何访问第一个 sheet 和 Excel 文件?
我刚刚遇到了同样的问题,问题是 EPPlus 在具有命名范围的电子表格上阻塞。
以下是我(使用 LibreOffice Calc)启用电子表格阅读的方法:
- 创建电子表格的副本
- 在 LibreOffice 中打开
- 列表项
- 点击左上角的drodpwon 定义范围。通常读取 "A1"
- Select "Manage Names"
- 突出显示整个列表
- 点击"Delete"
完成这些步骤后,我 saved/closed 电子表格并能够使用 EPPlus 打开它。
我通过按名称而不是索引引用工作表来解决这个问题。
var oSheet = package.Workbook.Worksheets["My Worksheet Name"];
要获得第一个 sheet 只需使用以下代码
var xlWorkbook = new ExcelPackage(new FileInfo(@"C:\ESD\EXCELDATAREADTEST.xlsx"));
ExcelWorksheet workSheet = xlWorkbook.Workbook.Worksheets[1];
只需确保您指向工作簿的正确位置
我用过
var currentSheet = package.Workbook.Worksheets;
var workSheet = currentSheet.First();
这是因为 sheet 可能没有已知名称,现在您对第一个 sheet
感兴趣
您可以从零开始索引,它会起作用。
ExcelWorksheet ws = workBook.Worksheets[0];
我正在尝试使用 EPPLUS 4.0.3 打开一个 XLSX 文件作为模板(我什至使用了一个空白的 XLSX 文件)。
如果我不打开模板文件(空白的或真实的)而只是创建一个新的工作簿并创建一个 sheet,它工作正常。或者,如果我打开模板文件,并创建一个新作品sheet,那么它就可以正常工作。只有当我尝试访问模板中的 FIRST sheet 时,我才收到错误消息:Worksheet位置超出范围。
像这样访问第一个作品sheet:workBook.Worksheets.First()
不起作用。
First is no longer a definition.
所以我尝试通过名称访问第一个作品sheet,并通过此方法workBook.Worksheets[1]
同时使用 0 和 1 来尝试获取第一个 sheet。
我的代码:
var existingTemplate = new FileInfo(_ExcelTemplateFilePath);
using (ExcelPackage p = new ExcelPackage(existingTemplate)) {
// Get the work book in the file
ExcelWorkbook workBook = p.Workbook;
ExcelWorksheet ws = workBook.Worksheets[1];
// MY OTHER EXCEL CELL CODE HERE
}}
有谁知道如何访问第一个 sheet 和 Excel 文件?
我刚刚遇到了同样的问题,问题是 EPPlus 在具有命名范围的电子表格上阻塞。
以下是我(使用 LibreOffice Calc)启用电子表格阅读的方法:
- 创建电子表格的副本
- 在 LibreOffice 中打开
- 列表项
- 点击左上角的drodpwon 定义范围。通常读取 "A1"
- Select "Manage Names"
- 突出显示整个列表
- 点击"Delete"
完成这些步骤后,我 saved/closed 电子表格并能够使用 EPPlus 打开它。
我通过按名称而不是索引引用工作表来解决这个问题。
var oSheet = package.Workbook.Worksheets["My Worksheet Name"];
要获得第一个 sheet 只需使用以下代码
var xlWorkbook = new ExcelPackage(new FileInfo(@"C:\ESD\EXCELDATAREADTEST.xlsx"));
ExcelWorksheet workSheet = xlWorkbook.Workbook.Worksheets[1];
只需确保您指向工作簿的正确位置
我用过
var currentSheet = package.Workbook.Worksheets;
var workSheet = currentSheet.First();
这是因为 sheet 可能没有已知名称,现在您对第一个 sheet
感兴趣您可以从零开始索引,它会起作用。
ExcelWorksheet ws = workBook.Worksheets[0];