我正在编写一个C#库来读取Excel文件(xls和xlsx),但我遇到了一个问题。
与此问题中表达的一样,如果我的Excel文件有一个包含字符串值但第一行为数字值的列,则OLEDB提供程序会将该列视为数字并返回该列中不是数字的
我知道,如所提供的答案,我可以在注册表中进行更改,但由于这是一个我计划在许多机器上使用的库,并且不想更改每个用户的注册表值,因此我想知道是否有更好的解决方案。
也许有其他DB提供程序可用,而不是ACE.OLEDB(似乎JET已经不再得到足够支持以被考虑)?
另外,由于需要在XLS / XLSX上工作,因此诸如EPPlus / XML读取器之类的选项不适用于xls版本。
与此问题中表达的一样,如果我的Excel文件有一个包含字符串值但第一行为数字值的列,则OLEDB提供程序会将该列视为数字并返回该列中不是数字的
NULL
值。我知道,如所提供的答案,我可以在注册表中进行更改,但由于这是一个我计划在许多机器上使用的库,并且不想更改每个用户的注册表值,因此我想知道是否有更好的解决方案。
也许有其他DB提供程序可用,而不是ACE.OLEDB(似乎JET已经不再得到足够支持以被考虑)?
另外,由于需要在XLS / XLSX上工作,因此诸如EPPlus / XML读取器之类的选项不适用于xls版本。
.csv
文件。我还有一个宏,用于整理数据,但这种方法会删除所有格式,并允许更轻松的导入。 - AeroX