c#读取Excel的第一个Sheet表

这是一个C#方法,用于读取Excel文件中的所有工作表名称。通过使用`OleDbConnection`和`GetOleDbSchemaTable`获取表格信息,然后将工作表名存储在ArrayList中。若要获取第一个工作表的名称,可以从ArrayList中直接获取第一个元素。
  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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值