C# 3.5 读取 Excel 文件

Posted

技术标签:

【中文标题】C# 3.5 读取 Excel 文件【英文标题】:C# 3.5 Reading Excel files 【发布时间】:2010-08-24 15:02:40 【问题描述】:

当我尝试使用此代码读取 XML 工作表时,我有一个奇怪的行为:

string CONNEC_STRING = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=0;Extended Properties=\"Excel 8.0;HDR=No;IMEX=2;\"";
            string fullFilePath = @"C:\Tmp\TestFile.xls";
            using (OleDbConnection objCon = new OleDbConnection(string.Format(CONNEC_STRING, fullFilePath)))
            
                using (OleDbCommand cm = new OleDbCommand("Select * From [MYCELLSRANGE]", objCon))
                using (OleDbDataAdapter da = new OleDbDataAdapter(cm))
                
                    DataTable dt = new DataTable();
                    objCon.Open();
                    da.Fill(dt);
                    objCon.Close();
                
            

如果 Excel 文件已关闭,我会收到错误消息“外部表不是预期的格式。” 当我打开文件时,如果我执行上面的代码,它工作正常,我可以读取 MYCELLSRANGE 中包含的数据。 那么,有人对这个问题有任何想法吗? 感谢您的回答。

【问题讨论】:

您是否尝试过 IMEX 的不同值? 【参考方案1】:

我相信这是因为 Jet Engine 使用 Excel 应用程序来解释文件。我自己也遇到过这个问题。当您使用 Excel.dll 引用并从中解释 Excel 文件时,您必须创建一个新的应用程序实例来读取该文件。 Jet 就是这样做来获取数据的。我建议改用该代码。

C# Corner example of how to Import Excel to a ListView C# Corner example of how to Create an Excel Worksheet in C# MSDN users discussing the same topic

如果您需要进一步的帮助,请告诉我。我已经在我的各种应用程序中的 VB.NET 中成功地做到了这一点。

【讨论】:

以上是关于C# 3.5 读取 Excel 文件的主要内容,如果未能解决你的问题,请参考以下文章

C#里使用ExcelDataReader读取EXCEL文件的简单方法

C#里使用ExcelDataReader读取EXCEL文件的简单方法

.NET Core(C#) EPPlus读取Excel(.xlsx)文件的方法及示例代码

C# 读取excel组件方法?

2015版vs c#读取excel代码

C# 读取EXCEL文件的三种经典方法