/// <summary> /// 获取 Excel 文件中指定索引的工作表名称 /// </summary> /// <param name="filepath">Excel 的文件名</param> /// <param name="sheetIndex">要获取的索引</param> /// <returns></returns> private string GetExcelSheetNameByIndex(String filepath, int sheetIndex) { string connectionString = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=/"Excel 8.0;HDR=Yes;IMEX=1/";", filepath); using (OleDbConnection conn = new OleDbConnection(connectionString)) { conn.Open(); DataTable schemaTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); return schemaTable.Rows.Count > sheetIndex ? schemaTable.Rows[sheetIndex]["TABLE_NAME"].ToString().Trim() : String.Empty; } } /// <summary> /// 获取导入的Excel内容,放在DataSet中 /// </summary> public DataSet GetExcelContent(string filepath) { string sheetName = this.GetExcelSheetNameByIndex(filepath, 0); string strCon = "Provider=Microsoft.Jet.Oledb.4.0; Data Source=" + filepath + "; Extended Properties=/"Excel 8.0; HDR=No; IMEX=1;/""; System.Data.OleDb.OleDbConnection myConn = new System.Data.OleDb.OleDbConnection(strCon); string strCom = "SELECT distinct * FROM " + "[" + sheetName + "]"; myConn.Open(); System.Data.OleDb.OleDbDataAdapter myCommand = new System.Data.OleDb.OleDbDataAdapter(strCom, myConn); DataSet myDataSet = new DataSet(); myCommand.Fill(myDataSet, "[" + sheetName + "]"); myConn.Close(); myConn.Dispose(); return myDataSet; }