导入Excel文件到datagridview中
问题描述:
我有下面的代码将导入我的excel文件。但由于某种原因,它不会显示原始电子表格中的所有数据。导入Excel文件到datagridview中
原来这里是电子表格:
这里是输出:
出于某种原因,一些受益期月下的列丢失或不出现。
private void btnLoadExcel_Click(object sender, EventArgs e){
string pathConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + txtPath.Text +
";Extended Properties=\"Excel 8.0;HDR=Yes;\";";
OleDbConnection conn = new OleDbConnection(pathConn);
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter("Select * from [" + txtSheet.Text+ "$]",conn);
conn.Open();
DataTable dt = new DataTable();
myDataAdapter.Fill(dt);
dataGridView1.AutoResizeColumns();
dataGridView1.DataSource = dt;
for (int i = 0; i < dataGridView1.Columns.Count - 1; i++)
{
dataGridView1.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
}
dataGridView1.Columns[dataGridView1.Columns.Count - 1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
for (int i = 0; i < dataGridView1.Columns.Count; i++)
{
int colw = dataGridView1.Columns[i].Width;
dataGridView1.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.None;
dataGridView1.Columns[i].Width = colw;
}
}
答
复制你的代码产生了与你解释过的结果相同的结果。我所做的唯一更改是通过添加参数IMEX=1
来将pathConn
字符串设置为字符串的列类型。我猜测,excel文件中的不同行可能有不同的“类型”。
string pathConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + txtPath.Text +
";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1;\";";
希望这会有所帮助。