Seb*_*ian 5 vb.net asp.net excel filehelpers
当要使用ExcelStorage.ExtractRecords导入的Excel工作表的第一个单元格为空时,该过程将失败.IE浏览器.如果数据从第1行第2行开始,如果单元格(2,1)具有空值,则该方法失败.
有人知道如何解决这个问题吗?我已经尝试将FieldNullValue属性添加到映射类中,但没有运气.
这是一个示例项目,显示有问题的代码
希望有人可以帮助我或指出一些方向.
谢谢!
您似乎在 FileHelpers 中偶然发现了一个问题。
发生的情况是 ExcelStorage.ExtractRecords 方法使用空单元格检查来查看它是否已到达工作表的末尾。这可以在ExcelStorage.cs源代码中看到:
while (CellAsString(cRow, mStartColumn) != String.Empty)
{
try
{
recordNumber++;
Notify(mNotifyHandler, mProgressMode, recordNumber, -1);
colValues = RowValues(cRow, mStartColumn, RecordFieldCount);
object record = ValuesToRecord(colValues);
res.Add(record);
}
catch (Exception ex)
{
// Code removed for this example
}
}
Run Code Online (Sandbox Code Playgroud)
因此,如果任何行的起始列为空,则假定文件已完成。
解决这个问题的一些选项:
前两个是解决方法(并不是很好的方法)。第三个选项可能是最好的,但是文件结束条件是什么?也许一整行都是空的就足够了(但即使这样也可能无法在所有情况下始终有效)。