c#读取Excel的第一个Sheet表

有朋友问道:

ExpandedBlockStart.gif 代码
public  ArrayList ExcelSheetName( string  filepath)
        {
            ArrayList al 
=   new  ArrayList();
            
string  strConn;
            strConn 
=   " Provider=Microsoft.Jet.OLEDB.4.0;Data Source= "   +  filepath  +   " ;Extended Properties=\ " Excel  8.0 ;HDR = Yes;IMEX = 1 ;\ " ; " ;
            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)
            {
                al.Add(dr[
2 ]);
            }
            
return  al;
        }
这个方法获取的EXCEL表名是按字母顺序排列的,如果我要获得EXCEL的第一个工作表名,怎么做?
其实利用Framework提供的Excel 对象模型很容易解决这个问题,下面是邀月的测试过程及代码:
新建一控制台项目,添加两个dll
Microsoft.Office.Interop.Excel
Microsoft.VisualBasic
如图:

添加代码:
using  System;
using  System.Collections.Generic;
using  System.Text;
// add namespace
using  Microsoft.Office.Interop.Excel;

namespace  ReadFirstSheetNameDemo
{
    
public   class  Program
    {
        
public   static   void  Main( string [] args)
        {
            
// Get Xth SheetName of Excel File
            Console.WriteLine(GetFirstSheetNameFromExcelFileName( " C:\\test.xls " , 1 ));
            Console.ReadKey();
        }
        
public   static   string  GetFirstSheetNameFromExcelFileName( string  filepath, int  numberSheetID)
        {
            
if  ( ! System.IO.File.Exists(filepath))
            {
                
return   " This file is on the sky?? " ;
            }
            
if  (numberSheetID  <=   1 ) { numberSheetID  =   1 ; }
            
try
            {
                Microsoft.Office.Interop.Excel.Application obj 
=   default (Microsoft.Office.Interop.Excel.Application);
                Microsoft.Office.Interop.Excel.Workbook objWB 
=   default (Microsoft.Office.Interop.Excel.Workbook);
                
string  strFirstSheetName  =   null ;

                obj 
=  (Microsoft.Office.Interop.Excel.Application)Microsoft.VisualBasic.Interaction.CreateObject( " Excel.Application " string .Empty);
                objWB 
=  obj.Workbooks.Open(filepath, Type.Missing, Type.Missing,
                    Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
                    Type.Missing,Type.Missing, Type.Missing, Type.Missing, 
                    Type.Missing, Type.Missing,Type.Missing, Type.Missing);

                strFirstSheetName 
=  ((Microsoft.Office.Interop.Excel.Worksheet)objWB.Worksheets[ 1 ]).Name;

                objWB.Close(Type.Missing, Type.Missing, Type.Missing);
                objWB 
=   null ;
                obj.Quit();
                obj 
=   null ;
                
return  strFirstSheetName;
            }
            
catch  (Exception Err)
            {
                
return  Err.Message;
            }
        }
    }
}
结果:


参考资料:
http://www.cnblogs.com/downmoon/archive/2008/08/20/1272185.html
http://msdn.microsoft.com/zh-cn/library/aa168292%28office.11%29.aspx#EDAA

 

转载于:https://www.cnblogs.com/downmoon/archive/2010/02/23/1671919.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值