2010-03-09 56 views
0

下面是我的代碼,我試圖在我的c#應用程序中打開我的excel文件,但程序給了我一個錯誤消息「無法訪問」我的excel.xls「。在它的工作原理我的字符串路徑變量指定文件路徑,問題是我需要從一個OpenFileDialog獲取的文件路徑。我無法在c#中打開我的excel文件

using System; 
using System.IO; 
using System.Collections.Generic; 
using System.Text; 
using System.Data; 
using System.Windows.Forms; 
using System.Data.OleDb; 
using System.Reflection; 
using MOIE = Microsoft.Office.Interop.Excel; 
using OFFICE = Microsoft.Office.Core; 

namespace EmpUploader 
{ 
    public class ExcelCon 
    { 
     private OleDbDataReader reader = null; 
     private OleDbCommand excelCommand = new OleDbCommand(); 
     private OleDbDataAdapter adapter = new OleDbDataAdapter(); 
     private DataTable excelData = new DataTable(); 
     private MOIE.ApplicationClass objExcel = new MOIE.ApplicationClass(); 
     private MOIE.Workbook wb = null; 
     private string myConn = ""; 
     private string strSQL = ""; 
     private string err = ""; 
     private string path2 = ""; 
     private int sheetCount = 0; 
     private OleDbConnection Con = new OleDbConnection(""); 

#region "excel interop prarameters" 
     private static object xl_missing = Type.Missing; 
     private static object xl_true = true; 
     private static object xl_false = false; 


     private object xl_update_links = xl_missing; 
     private object xl_read_only = xl_missing; 
     private object xl_format = xl_missing; 
     private object xl_password = xl_missing; 
     private object xl_write_res_password = xl_missing; 
     private object xl_ignore_read_only = xl_missing; 
     private object xl_origin = xl_missing; 
     private object xl_delimiter = xl_missing; 
     private object xl_editable = xl_missing; 
     private object xl_notify = xl_missing; 
     private object xl_converter = xl_missing; 
     private object xl_add_to_mru = xl_missing; 
     private object xl_local = xl_missing; 
     private object xl_corrupt_load = xl_missing; 
#endregion 
    } 
//MY CODE FOR OPENING THE EXCEL 
//note that my file path came from an openfiledialog 
    public void InitializeConnection(string path) 
     { 


       //connection string for excel 
       myConn = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + path + ";  Extended Properties =Excel 8.0"; 
       Con.ConnectionString = myConn; 
       Con.Open(); 

       //this is the sample specified path that worked when i test my application 
       //path = @"C:\shinetsu p5 emp list.xls"; 
       objExcel.Visible = false; 
       wb = objExcel.Workbooks.Open(path, xl_update_links, xl_read_only, xl_format, xl_password, xl_write_res_password, xl_ignore_read_only, xl_origin, xl_delimiter, xl_editable, xl_notify, xl_converter, xl_add_to_mru, xl_local, xl_corrupt_load); 

      sheetCount = wb.Worksheets.Count; 



     } 
} 
+1

包含調用InitializeConnection的代碼,特別是文件對話框代碼。 – 2010-03-09 02:41:10

+0

private void btnBrowse_Click_1(object sender,EventArgs e) openFileDialog1.InitialDirectory =「c:/」; openFileDialog1.Filter =「xls文件(* .xls)| * .xls |所有文件(*。*)| *。*」; openFileDialog1.FileName =「」; openFileDialog1.ShowDialog(); openFileDialog1.CheckFileExists = true; txtpath.Text = openFileDialog1.FileName; if(openFileDialog1.FileName!=「」) excel.InitializeConnection(txtpath.Text); } } – 2010-03-09 03:03:54

回答