后台代码:
- //首先在命名空间中加入以下两行 using System.Data.SqlClient;
- using System.Data.OleDb; protected void btn2_Click(object sender, EventArgs e)
- { string filepath = FileUpload1.PostedFile.FileName;
- ReadExcel(filepath, dgBom); }
- 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++)










