【问题标题】:EPPlus - Cannot find column 10EPPlus - 找不到第 10 列
【发布时间】:2012-10-29 21:33:03
【问题描述】:

我有一个应用程序,用户上传 excel(2007 或更高版本)文件,该文件被解析,内容存储在数据库中。我正在使用EPPlus 从 Excel 中读取内容。这是代码sn-p

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,它接受列的索引作为第二个参数。

【问题讨论】:

    标签: epplus


    【解决方案1】:

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

    【讨论】:

    • 是的,你是对的,我的 DataTable Columns 集合中没有适当数量的列。感谢您指出这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-08
    • 2017-01-21
    • 1970-01-01
    • 2016-08-15
    相关资源
    最近更新 更多