gpt4 book ai didi

asp.net - 当第一个单元格为空时 Filehelpers ExcelStorage.ExtractRecords 失败

转载 作者:行者123 更新时间:2023-12-02 07:24:08 26 4
gpt4 key购买 nike

当使用 ExcelStorage.ExtractRecords 导入的 Excel 工作表的第一个单元格为空时,该过程将失败。 IE。如果数据从第 1 列第 2 行开始,如果单元格 (2,1) 具有空值,则该方法失败。

有人知道如何解决这个问题吗?我尝试向映射类添加 FieldNullValue 属性,但没有成功。

Here是一个示例项目,显示了有问题的代码

希望有人可以帮助我或指出某个方向。

谢谢!

最佳答案

您似乎在 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
}
}


因此,如果任何行的起始列为空,则假定文件已完成。

解决这个问题的一些选项:

  1. 不要在第一列位置放置任何空单元格。
  2. 不要使用 Excel 作为文件格式 - 请先转换为 CSV。
  3. 看看是否可以从开发人员那里获取补丁或自己修补源代码。

前两个是解决方法(并不是很好的方法)。第三个选项可能是最好的,但是文件结束条件是什么?也许一整行都是空的就足够了(但即使这样也可能无法在所有情况下始终有效)。

关于asp.net - 当第一个单元格为空时 Filehelpers ExcelStorage.ExtractRecords 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1463219/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com