C#读取Excel文件并用datagridview显示
原创
©著作权归作者所有:来自51CTO博客作者阳阳船长的原创作品,请联系作者获取转载授权,否则将追究法律责任
试过网上大部分方法,都有错误,于是自己摸索了一下:Csharp 代码如下
public static DataSet GetExcelData(string str)
{
string strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + str + ";Extended Properties='Excel 12.0;HDR=YES;IMEX=1;'";
OleDbConnection myConn = new OleDbConnection(strCon);
string strCom = " SELECT * FROM [Sheet1$]";
myConn.Open();
OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, myConn);
DataSet myDataSet = new DataSet();
myCommand.Fill(myDataSet, "[Sheet1$]");
myConn.Close();
return myDataSet;
}
private void ReadExcelMenu_Click(object sender, EventArgs e)
{
OpenFileDialog filedialog = new OpenFileDialog();
string FileName = "";
if (filedialog.ShowDialog() == DialogResult.OK)
{
FileName = filedialog.FileName;
dGViewExcel.DataSource = GetExcelData(FileName);
dGViewExcel.DataMember = "[Sheet1$]";
for (int count = 0; (count <= (dGViewExcel.Rows.Count - 1)); count++)
{
dGViewExcel.Rows[count].HeaderCell.Value = (count + 1).ToString();
}
}
}
需要说明的是,无论是2003版的xls 还是2007 的xlsx,都是可以的,本文使用2007 的excel连接字符串,其向下兼容,故而不用分格式。