如果列中的前一个单元格为空,DataReader 不会在 Excel 单元格中看到数据
Posted
技术标签:
【中文标题】如果列中的前一个单元格为空,DataReader 不会在 Excel 单元格中看到数据【英文标题】:DataReader does not see data in Excel cell if previous cell in the column are empty 【发布时间】:2012-09-05 10:20:16 【问题描述】:我在使用 OleDbDataReader
读取 .xls 文件时遇到了一个奇怪的问题。
基本上,如果列中的先前单元格为空,则它不会在单元格中看到数据。
如果我在 Excel 工作表顶部移动带有数据的行,则一切正常。我不确定,但我认为这与包含数据的单元格之前的空单元格的数量有关。
任何帮助或建议将不胜感激。
【问题讨论】:
请向我们展示一些代码,以便我们验证/证伪您的假设。 在发布代码时并没有真正看到任何意义。如果我在 Excel 工作表顶部移动问题行,问题就会消失,即这不起作用:HEADER 100 Empty cells Not Empty cell 这会:HEADER 7(任何小数字)Empty cells NOT Empty cell 这也有效:HEADER非空单元格 【参考方案1】:你可能有一个这样的连接字符串:
<add name="MyApp.Properties.Settings.ExcelConnectionString" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=0;Extended Properties="Excel 8.0;IMEX=1;HDR=NO;TypeGuessRows=0;ImportMixedTypes=Text;";"/>
注意“TypeGuessRows”。它告诉 Excel 要扫描多少行以尝试猜测列的数据类型。值 0(零)告诉它扫描所有行。这对你有帮助吗?
【讨论】:
非常感谢您的回复,GreatBittern。实际上,我几周前就想出了答案,只是忘记在此处发布解决方案。对此我深表歉意。以上是关于如果列中的前一个单元格为空,DataReader 不会在 Excel 单元格中看到数据的主要内容,如果未能解决你的问题,请参考以下文章
如何将两列与数据合并,如果一列的单元格为空,则相邻的单元格已满?
如果 A 列中的单元格为空白,则针对不同工作表中的数据集查找 B 列