您的位置:首页 > 编程语言 > C#

C#如何读取Excel表格数据并显示到GridView控件

2007-12-25 22:51 1091 查看
近日,有个项目,需要用Web形式将Excel表格中的数据导入到数据库中,为了简化问题的解决,现在先将表中数据导入到GridView控件上.

代码如下:


protected void Button1_Click(object sender, EventArgs e)




...{


string filepath=FileUpload1.PostedFile.FileName;


ReadExcel(filepath, gdBom);


}


public void ReadExcel(string sExcelFile,GridView dgBom)




...{


DataTable ExcelTable;


DataSet ds = new DataSet();


//Excel的连接


OleDbConnection objConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sExcelFile + ";" + "Extended Properties=Excel 8.0;");


objConn.Open();


DataTable schemaTable = objConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);


string tableName = schemaTable.Rows[0][2].ToString().Trim();//获取Excel的表名,默认值是sheet1


string strSql = "select * from [" + tableName + "]";


OleDbCommand objCmd = new OleDbCommand(strSql, objConn);


OleDbDataAdapter myData = new OleDbDataAdapter(strSql, objConn);


myData.Fill(ds, tableName);//填充数据




dgBom.DataSource =ds;


dgBom.DataBind();


objConn.Close();




ExcelTable = ds.Tables[tableName];


int iColums = ExcelTable.Columns.Count;//列数


int iRows = ExcelTable.Rows.Count;//行数




//定义二维数组存储Excel表中读取的数据


string[,] storedata = new string[iRows, iColums];




for(int i=0;i<ExcelTable.Rows.Count;i++)


for (int j = 0; j < ExcelTable.Columns.Count; j++)




...{


//将Excel表中的数据存储到数组


storedata[i, j] = ExcelTable.Rows[i][j].ToString();




}


int excelBom = 0;//记录表中有用信息的行数,有用信息是指除去表的标题和表的栏目,本例中表的用用信息是从第三行开始


//确定有用的行数


for (int k = 2; k < ExcelTable.Rows.Count; k++)


if (storedata[k, 1] != "")


excelBom++;


if (excelBom == 0)




...{


Response.Write("<script language=javascript>alert('您导入的表格不合格式!')</script>");


}


else




...{


//LoadDataToDataBase(storedata,excelBom)//该函数主要负责将storedata中有用的数据写入到数据库中,在此不是问题的关键省略


}




}

运行效果如下图:选择BOM表的路径,点确定后

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐