C#获取Excel中所有的Sheet名称

原文地址:http://blog.csdn.net/qq1010726055/article/details/6858849

 

Excel.Application myExcel = new Excel.Application();
 object missing = System.Reflection.Missing.Value;
 myExcel.Application.Workbooks.Open(this.txtFile.Text, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing); //this.txtFile.Text为Excel文件的全路径
Excel.Workbook myBook = myExcel.Workbooks[1];

//获取第一个Sheet
Excel.Worksheet sheet = (Excel.Worksheet)myBook.Sheets[1]; 
string sheetName = sheet.Name; //Sheet名

 

//获取全部Sheet名

public static StringCollection ExcelSheetName(string filepath)
 {
 StringCollection names = new StringCollection();
 string strConn;
 strConn = "Provider=Microsoft.Ace.OLEDB.12.0;Data Source=" + filepath + ";Extended Properties='Excel 12.0;HDR=Yes;IMEX=2'";
 OleDbConnection conn = new OleDbConnection(strConn);
 conn.Open();
 DataTable sheetNames = conn.GetOleDbSchemaTable
 (System.Data.OleDb.OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
 conn.Close();

foreach (DataRow dr in sheetNames.Rows)
 {
 names.Add(dr[2].ToString());
 }
 return names;
 }

注意:操作完后要关闭:

myBook.Close(Type.Missing,Type.Missing,Type.Missing);

myExcel.Quit();

posted @ 2015-11-09 10:05  姑苏慕容复  阅读(13654)  评论(0编辑  收藏  举报