2015-02-08 65 views
2

我使用此代码来从Excel中读取,但有一些单元格{D2,D4}从Excel文件中读取它们包含('$'){D2 ,D4}。

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; 
    } 

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

enter image description here

+0

这不是一个公式,是吗? – 2015-02-08 13:07:06

+0

看看[这个答案](http://stackoverflow.com/a/26543906/2140173)帮助 – 2015-02-12 09:57:38

回答

0

更改连接字符串,迫使司机要考虑所有的数据是文本,而不是做出有关数字,日期等。假设你这样做,加入“IMEX = 1;”:

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

当您检索数据以将事情转回您想要的数据类型时,您当然会有更多工作要做。

+0

Crowcoder 首先thnaks你支持 但是当我加入这个我的代码在我看来,这个错误 “找不到installabele ISAM“sooo热解决这个?? – 2015-02-08 14:05:37

+0

尝试使用OleDb提供程序:Provider = Microsoft.ACE.OLEDB.12.0; Data Source = {0};扩展属性=“Excel 12.0; HDR = YES; IMEX = 1;” – Crowcoder 2015-02-08 14:23:27

+0

Crowcoder再次感谢,但“无法找到可安装的ISAM”。错误仍然出现... :( – 2015-02-09 06:38:06

0

应该强迫它来治疗所有文字同样

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

JLILI Aman 感谢您的支持,但我发现此错误... 找不到可安装的ISAM .... :( – 2015-02-09 06:36:42