C#实现读取Excel中Sheet数据;通过C#读取Excel代码如下:
using System; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Web; usingSystem.Web.UI; usingSystem.Web.UI.WebControls; usingSystem.Data; usingSystem.Data.OleDb; usingSystem.Text; namespaceKM.Demo { public partial class Import : System.Web.UI.Page { string[] strTableNames = null; protected void Page_Load(object sender, EventArgs e) {} protectedDataTableGetExcelData(string filePath) { #region 获取sheet数据 OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'"); con.Open(); DataTabledtSheetName = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" }); stringstrTabName = string.Empty; //包含excel中表名的字符串数组 strTableNames = new string[dtSheetName.Rows.Count]; for (inti = 0; i<dtSheetName.Rows.Count; i++) { strTableNames[i] = dtSheetName.Rows[i]["TABLE_NAME"].ToString(); if (strTableNames[i].Contains("流程作业") || strTableNames[i].Contains("作业流程")) { strTabName = strTableNames[i]; break; } } string sql = "select * from [" + strTabName + "]";//选择第二个数据SHEET OleDbDataAdapter adapter = new OleDbDataAdapter(sql, con); DataTabledt = new DataTable(); adapter.Fill(dt); con.Close(); con.Dispose(); returndt; #endregion } protected void btnGetExcelData_Click(object sender, EventArgs e) { #region try { //if (fileUpload.FileName == "") // return; //string fileExt = System.IO.Path.GetExtension(fileUpload.FileName); string fileExt = System.IO.Path.GetExtension(@"E:\work\Project\KM.Demo\KM-来访接待业务流程(综合管理科)(模板V.1).xls"); if (fileExt != ".xls")//必须是EXCEL文件 return; //string filepath = fileUpload.PostedFile.FileName;//文件路径 string filepath = @"E:\work\Project\KM.Demo\KM-来访接待业务流程(综合管理科)(模板V.1).xls";//文件路径 if (fileExt != ".xls")//必须是EXCEL文件 return; //string filepath = FuloadExcelFile.PostedFile.FileName;//文件路径 string filepath = @"E:\work\Project\KM.Demo\KM-来访接待业务流程(综合管理科)(模板V.1).xls";//文件路径 DataTabledt = new DataTable(); dt = GetExcelData(filepath);//返回EXCEL文件的数据 StringBuildersb = new StringBuilder(); string[] strWidth = new string[] { "width:90px;", "width:50px;", "width:200px;", "width:320px;", "width:140px;", "width:140px;", "width:100px;", "width:100px;", "width:300px;" }; sb.Append("<table cellpadding='0' cellspacing='0' border='1' width='100%'>"); sb.Append("<tr><td colspan='10' style='font-size:12px; font-weight:bold; text-align:center;'>" + strTableNames[1].ToString() + "</td></tr>"); sb.Append("<tr><td colspan='10'>" + dt.Rows[0][1].ToString() + "</td></tr>"); sb.Append("<tr><td colspan='10'>" + dt.Rows[1][1].ToString() + "</td></tr>"); for (inti = 1; i<dt.Rows.Count - 1; i++) { #region sb.Append("<tr>"); for (int k = 1; k <dt.Columns.Count - 1; k++) { switch (i) { case 0: break; case 1: break; case 2: sb.Append("<td style='font-size:12px; font-weight:bold; text-align:center; " + strWidth[k - 1].ToString() + "'>"); sb.Append(dt.Rows[i][k].ToString() + "</br>"); sb.Append("</td>"); break; default: sb.Append("<td>"); sb.Append(dt.Rows[i][k].ToString() + "</br>"); sb.Append("</td>"); break; } } sb.Append("</tr>"); #endregion } sb.Append("</table>"); this.divExcel.InnerHtml = sb.ToString(); //WriteEnd(sb.ToString()); } catch (Exception ex) { Page.Response.Write(ex.ToString()); } #endregion } protected void WriteEnd(string strEnd) { Response.Clear(); Response.Write(strEnd); Response.Flush(); Response.End(); } } }
本站技术原创栏目文章均为中睿原创或编译,转载请注明:文章来自中睿,本站保留追究责任的权利。