var fileType = Path.GetExtension(excelFileFullPath.ToLower()).Trim(); var excelVersionNumber = fileType == ".xlsx" ? "12.0" : "8.0"; OleDbConnection objConn = null; DataTable dt = null; var sheetList = new List<string>(); try { var connString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0} ;" + "Extended Properties=\"Excel {1};HDR=Yes;IMEX=1;\"", excelFileFullPath, excelVersionNumber); objConn = new OleDbConnection(connString); objConn.Open(); dt = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); if (dt == null) { return; } //读取Excel文件中所有表单 foreach (DataRow row in dt.Rows) { var sheetName = row["TABLE_NAME"].ToString(); sheetList.Add(sheetName); TabPage tab = new TabPage(sheetName.Substring(0, sheetName.LastIndexOf('$'))); string strExcel = string.Format("select * from [{0}]", sheetName); OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel, connString); Utility.SetLableText(labExcelImportInfo, string.Format("正在加载Excel表【{0}】数据!", sheetName)); adapter.Fill(importDataSet, sheetName); DataGridView view = new DataGridView(); view.AllowUserToAddRows = false; view.AllowUserToDeleteRows = false; view.RowPostPaint += new DataGridViewRowPostPaintEventHandler(dataGridView1_RowPostPaint); view.DataSource = importDataSet.Tables[sheetName]; view.Tag = importDataSet; view.Update(); view.Dock = DockStyle.Fill; tab.Controls.Add(view); tabControl2.TabPages.Add(tab); } } catch (Exception ex) { string strExInfo = string.Format("加载Excel表数据失败!", ex.Message); Program.ExcepitonAuditLog(PriFunction.PF_VM_REGPHOTO_MANAGER_IMPORT, strExInfo, false); //MessageBox.Show(ex.Message); Utility.SetLableText(labExcelImportInfo, string.Format("加载Excel失败!", ex.Message)); return; } finally { if (objConn != null) { objConn.Close(); objConn.Dispose(); } if (dt != null) { dt.Dispose(); } } |
|