C# 3.5 读取Excel文件

3

当我尝试使用以下代码读取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值吗? - Jerome
1个回答

2
我认为是因为Jet Engine使用Excel应用程序来解释文件。我也曾遇到过这个问题。当你使用Excel.dll引用并从中解释Excel文件时,你必须创建一个新的应用程序实例来读取文件。Jet正是通过这种方式来获取数据的。我建议使用那段代码代替它。 如果您需要进一步协助,请告诉我。我在我的各种应用程序中已成功地使用VB.NET完成了此操作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接