使用C#和列类型问题阅读Excel

时间:2018-02-02 06:30:18

标签: c# excel oledb

我在使用C#/OleDb阅读Excel文件时遇到噩梦。我遇到了一个众所周知的问题,即当一列不是数字时,它就是一个数字。

第一个15行是numeric,但该列中的后续单元格不是,因此读为null!疯了吧。我知道IMEX等,但总有一些gotcha,通常是

  

“找不到可安装的IASM”或关于Microsoft.ACE.OLEDB.12.0的内容。

解决这些问题并非易事,似乎充满了陷阱。

我真的不想要与Jet等有关,以及它涉及的所有维护/安装程序问题,在客户端计算机上安装应用程序时不要轻易担心。

有什么方法可以简单地将Excel工作表读入DataTable,我决定涉及哪些类型,哪些不依赖于MS Access(!?)或任何这些Office-ey文件最重要的是,它不会单独决定使用什么类型以及是否导入一个单元格值而不是另一个单元格值?