c#讀取Excel的第一個Sheet表

  1. public ArrayList ExcelSheetName(string filepath)   
  2.         {   
  3.             ArrayList al = new ArrayList();   
  4.             string strConn;   
  5.             strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1;\";";   
  6.             OleDbConnection conn = new OleDbConnection(strConn);   
  7.             conn.Open();   
  8.             DataTable sheetNames = conn.GetOleDbSchemaTable   
  9.             (System.Data.OleDb.OleDbSchemaGuid.Tables, new object[] { nullnullnull"TABLE" });   
  10.             conn.Close();   
  11.             foreach (DataRow dr in sheetNames.Rows)   
  12.             {   
  13.                 al.Add(dr[2]);   
  14.             }   
  15.             return al;   
  16.         }  

這個方法獲取的EXCEL表名是按字母順序排列的,如果我要獲得EXCEL的第一個工作表名,怎麼做?

其實利用Framework提供的Excel 對象模型很容易解決這個問題,下面是邀月的測試過程及代碼:
新建一控制檯項目,添加兩個dllMicrosoft.Office.Interop.Excel
Microsoft.VisualBasic
如圖:
添加代碼:
  1. using System;   
  2. using System.Collections.Generic;   
  3. using System.Text;   
  4. //add namespace   
  5. using Microsoft.Office.Interop.Excel;   
  6.   
  7. namespace ReadFirstSheetNameDemo   
  8. {   
  9.     public class Program   
  10.     {   
  11.         public static void Main(string[] args)   
  12.         {   
  13.             //Get Xth SheetName of Excel File   
  14.             Console.WriteLine(GetFirstSheetNameFromExcelFileName("C:\\test.xls",1));   
  15.             Console.ReadKey();   
  16.         }   
  17.         public static string GetFirstSheetNameFromExcelFileName(string filepath,int numberSheetID)   
  18.         {   
  19.             if (!System.IO.File.Exists(filepath))   
  20.             {   
  21.                 return "This file is on the sky??";   
  22.             }   
  23.             if (numberSheetID <= 1) { numberSheetID = 1; }   
  24.             try  
  25.             {   
  26.                 Microsoft.Office.Interop.Excel.Application obj = default(Microsoft.Office.Interop.Excel.Application);   
  27.                 Microsoft.Office.Interop.Excel.Workbook objWB = default(Microsoft.Office.Interop.Excel.Workbook);   
  28.                 string strFirstSheetName = null;   
  29.   
  30.                 obj = (Microsoft.Office.Interop.Excel.Application)Microsoft.VisualBasic.Interaction.CreateObject("Excel.Application"string.Empty);   
  31.                 objWB = obj.Workbooks.Open(filepath, Type.Missing, Type.Missing,   
  32.                     Type.Missing, Type.Missing, Type.Missing, Type.Missing,    
  33.                     Type.Missing,Type.Missing, Type.Missing, Type.Missing,    
  34.                     Type.Missing, Type.Missing,Type.Missing, Type.Missing);   
  35.   
  36.                 strFirstSheetName = ((Microsoft.Office.Interop.Excel.Worksheet)objWB.Worksheets[1]).Name;   
  37.   
  38.                 objWB.Close(Type.Missing, Type.Missing, Type.Missing);   
  39.                 objWB = null;   
  40.                 obj.Quit();   
  41.                 obj = null;   
  42.                 return strFirstSheetName;   
  43.             }   
  44.             catch (Exception Err)   
  45.             {   
  46.                 return Err.Message;   
  47.             }   
  48.         }   
  49.     }   
  50. }  
結果: 邀月工作室 參考資料: http://www.cnblogs.com/downmoon/archive/2008/08/20/1272185.html

http://msdn.microsoft.com/zh-cn/library/aa168292%28office.11%29.aspx#EDAA

http://www.cnblogs.com/CodingArt/articles/1672663.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章