不能读取单元格从Excel中包含“$”

我使用这个代码从excel中读取,但是有一些单元格{D2,D4}不能从包含('$'){D2,D4}的excel文件读取它们。

OpenFileDialog ex = new OpenFileDialog(); ex.Filter = "XLS|*.xls|All|*.*"; if (ex.ShowDialog() == System.Windows.Forms.DialogResult.OK) { try { var connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=Excel 8.0;", ex.FileName); var adapter = new OleDbDataAdapter("SELECT * FROM [Sheet7$]", connectionString); var ds = new DataSet(); adapter.Fill(ds); DataTable data = ds.Tables[0]; DATAGRID1.DataSource = data; } 

那么如何得到如图所示的这个值?

在这里输入图像描述

更改连接string以强制驱动程序将所有数据视为文本,而不是对数字,date等进行假设。通过添加“IMEX = 1;”来完成此操作:

 Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=Excel 8.0;IMEX=1 

当然,当你检索数据以将数据返回到你想要的数据types时,你将会有更多的工作要做。

应该强制它平等对待所有文本

 Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1""