2013-05-29 26 views
0

讀取Excel文件中的特定工作表我想要使用「Microsoft.Office.Interop.Excel」來讀取Excel文件中的特定工作表。 我的代碼就像如何使用Microsoft.Office.Interop.Excel

private static Microsoft.Office.Interop.Excel.ApplicationClass appExcel; 
    private static Workbook newWorkbook = null; 
    private static _Worksheet objsheet = null; 

    static void excel_init(String path) 
    { 
     appExcel = new Microsoft.Office.Interop.Excel.ApplicationClass(); 

     if (System.IO.File.Exists(path)) 
     { 
       newWorkbook = appExcel.Workbooks.Open(path, true, true); 
       objsheet = (_Worksheet)appExcel.ActiveWorkbook.ActiveSheet;    
     } 
     else 
     { 
      MessageBox.Show("Unable to open file!");    
     } 
    } 

如何改變這個讀取特定工作表?

回答

0

像下面

var sheet = (_Worksheet)appExcel.ActiveWorkbook.Sheets["Sheet2"]; 
sheet.Select(Type.Missing); 
+0

它會拋出一個異常:( – user2427480

+0

@ user2427480什麼異常,你需要給正確的表名稱? – Damith

1

你應該試試這種方法:

static void Main(string[] args) 
      { 
       try 
       { 

        OleDbConnection oledbConn; 

        string path = System.IO.Path.GetFullPath(@"D:\FileName.XLS"); 

        oledbConn = new OleDbConnection(@"provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + 
          path + "';Extended Properties=Excel 8.0;"); 

        oledbConn.Open(); 
        OleDbCommand cmd = new OleDbCommand(); ; 
        OleDbDataAdapter oleda = new OleDbDataAdapter(); 
        DataSet ds = new DataSet(); 


        cmd.Connection = oledbConn; 
        cmd.CommandType = CommandType.Text; 
        cmd.CommandText = "SELECT * FROM [sheet2]"; 
        oleda = new OleDbDataAdapter(cmd); 
        oleda.Fill(ds, "dsSlno"); 
        oledbConn.Close(); 

       } 
       catch (Exception) 
       { 

        throw; 
       } 

      } 
相關問題