将数据从Excel传输到dataGridView
问题描述:
当我想将数据从Excel传输到C#中的dataGridView时,出现问题。将数据从Excel传输到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 connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\test.xls;Extended Properties=""Excel 8.0;HDR=YES;IMEX=1""";
这将forceably读取为字符串的所有值。
答
尝试在导入之前将所有单元格格式化为Excel表格中的文本。 (你可以手动或编程方式做)