我有一个应用程序,用户上传excel(2007或更高版本)文件,此文件被解析,内容存储在数据库中。我正在使用EPPlus从Excel中读取内容。这是代码段
foreach (var worksheet in package.Workbook.Worksheets)
{
for (int i = worksheet.Dimension.Start.Row + 1; i <= worksheet.Dimension.End.Row; i++)
{
DataRow newRow = dt.NewRow();
for (int j = worksheet.Dimension.Start.Column; j <= worksheet.Dimension.End.Column; j++)
{
newRow[j - 1] = worksheet.Cells[i, j].Value;
}
dt.Rows.Add(newRow);
}
}
当j的值达到11时,我得到以下异常找不到第10列。但我确实检查了文件,它实际上有列索引10.我放了一个断点,看第9列的值,它与第10列之前的值完全相同。
所以任何人都可以帮助我吗?问题到底是什么?
我检查了API,EPPlus lib实际上有一个索引属性Cells,它接受列的索引作为第二个参数。
答案 0 :(得分:1)
你确定异常是来自“worksheet.Cells [i,j] .Value”而不是来自“newRow [j - 1]”吗?您的循环计数器“j”为11,但异常表示“找不到第10列”,它与您的newRow上的“[j-1]”索引器匹配。