0

我有一个应用程序,用户上传 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 时,出现以下异常Cannot find column 10。但我确实检查了文件,它实际上有列索引 10。我放了一个断点,观察第 9 列的值,它与第 10 列之前的值完全相同。

所以有人可以帮助我吗?真正的问题是什么?

我检查了 API,EPPlus lib 实际上有一个索引属性 Cells,它接受列的索引作为第二个参数。

4

1 回答 1

1

您确定例外来自“worksheet.Cells[i, j].Value”而不是来自“newRow[j - 1]”吗?您的循环计数器“j”为 11,但异常指示“无法找到第 10 列”,它与 newRow 上的“[j-1]”索引器匹配。

于 2012-10-31T15:38:10.487 回答