2010-03-09 5 views
0

Ci-dessous est mon code, j'ai essayé d'ouvrir mon fichier Excel dans mon application C# mais le programme me donne un message d'erreur "Impossible d'accéder" mon excel.xls ". spécifiez le chemin du fichier dans ma variable de chemin de chaîne, il fonctionne, le problème est que je dois obtenir le chemin du fichier à partir d'un OpenFileDialog.Je ne peux pas ouvrir mon fichier Excel dans C#

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

Incluez le code appelant InitializeConnection, en particulier le code du dialogue de fichier. –

+0

privé btnBrowse_Click_1 (expéditeur d'objet, EventArgs e) { openFileDialog1.InitialDirectory = "c: /"; openFileDialog1.Filter = "Fichiers xls (* .xls) | * .xls | Tous les fichiers (*. *) | *. *"; openFileDialog1.FileName = ""; openFileDialog1.ShowDialog(); openFileDialog1.CheckFileExists = true; txtpath.Text = openFileDialog1.FileName; if (openFileDialog1.FileName! = "") { excel.InitializeConnection (txtpath.Text); } } –

Répondre

Questions connexes