阅读 Excel 有 C# 和列类型问题

Reading Excel with C# and column type problems

我在使用 C#/OleDb 读取 Excel 文件时遇到噩梦般的问题。我遇到了一个众所周知的问题,即决定某列是数字的,而实际上它不是。

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

"could not find installable IASM" or something about Microsoft.ACE.OLEDB.12.0.

这些问题的修复并非微不足道,而且似乎充满了陷阱。

我真的不想与 Jet 等以及它涉及的所有 maintenance/installer 问题有任何关系,不要介意在客户端计算机上安装应用程序时的麻烦。

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

请试用 OpenXML SDK,它很棒。

https://www.aspsnippets.com/Articles/Read-and-Import-Excel-data-to-DataTable-using-OpenXml-in-ASPNet-with-C-and-VBNet.aspx