将数据从Excel传输到dataGridView

当我想将数据从Excel传输到C#中的dataGridView时遇到问题。

我的Excel的列有数字和字母数字值。 但是,例如,如果该列有3个数字和2个字母数字值,则只有数字显示在dataGridView中,反之亦然。 为什么没有显示所有的值? 接下来是发生了什么事情:

Excel's Column: DataGridView's Column: 45654 45654 P745K 31233 31233 23111 23111 45X2Y 

这里是我的代码来加载dataGridView:

 string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\test.xls;Extended Properties=""Excel 8.0;HDR=YES;"""; DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.OleDb"); DbDataAdapter adapter = factory.CreateDataAdapter(); DbCommand selectCommand = factory.CreateCommand(); selectCommand.CommandText = "SELECT * FROM [sheet1$]"; DbConnection connection = factory.CreateConnection(); connection.ConnectionString = connectionString; selectCommand.Connection = connection; adapter.SelectCommand = selectCommand; data = new DataSet(); adapter.Fill(data); dataGridView1.DataSource = data.Tables[0].DefaultView; 

我希望我解释得很好。 对不起我英语不好。

谢谢。

你可以像“↓”一样将“IMEX = 1”添加到连接string中

 string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\test.xls;Extended Properties=""Excel 8.0;HDR=YES;IMEX=1"""; 

它会强制读取string中的所有值。

尝试在导入之前将所有单元格格式化为Excel表格中的文本。 (你可以手动或编程)