ADO.NET 在用于读取其中一列包含混合数据类型的 Excel 文件时惨遭失败。它似乎试图确定列的数据类型,然后假设整个列的其余部分具有相同的数据类型。以下是一些背景:
How to prevent ADO.NET from altering double values when it reads from Excel files
http://blog.lab49.com/archives/196
什么是不需要自动化的替代方法,即共同安装 Excel,很简单(因为输入的 excel 文件在每个文件中只有一个工作表)。
最佳答案
这在一定程度上取决于您需要支持的 Excel 版本。我用过 ExcelPackage过去成功读取和创建 Excel 2007 文件。它不再处于开发中,这有点可惜。您必须手动遍历所有单元格,我不会称之为优雅,但它很灵活;)
Leniel 建议使用 EPPlus在 Excel 包上。我自己没有使用过它,但它看起来很有前途。
this question中还有其他几个建议,但我没有使用其他库的经验。
关于c# - 什么是 ADO.NET 的替代品,但在 C# 中读取 Excel 文件的优雅方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2969058/