C# 3.5 读取Excel文件

标签 c# .net-3.5 import-from-excel

当我尝试使用此代码读取 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 中包含的数据。 那么,有人对这个问题有任何想法吗? 感谢您的回答。

最佳答案

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

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

关于C# 3.5 读取Excel文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3557858/

相关文章:

c# - 新的 MVC View ,每次都会出现 404,即使使用正确的 Controller

asp.net - 使用 LinkBut​​ton 处理事件

.net - 请求的性能计数器不是自定义计数器,它必须初始化为只读

c# - Excel "External table is not in the expected format."

php - 确定变量中的空白实际上是什么

c# - 搜索全局地址列表时,有没有办法进行部分搜索而不仅仅是 "startsWith"

c# - 是否可以通过支持的平台过滤 nuget 包?

c# - 为什么 C# 执行 Math.Sqrt() 比 VB.NET 慢?

.net - .Net Framework 3.5 的 SSCLI

C# 无法从 Excel 电子表格导入所有单元格