2009-09-23 8 views
0

Est-ce le moyen correct d'accéder à un fichier MS Office Excel 2007?C# Accès à la feuille de calcul Excel

 String connString = "Provider=Microsoft.Jet.OLEDB.4.0;" + 
    "Data Source=" + file_path + ";Extended Properties=Excel 8.0;"; 

Si oui, comment puis-je accéder à une certaine feuille de calcul et insérer des lignes? Les liens sont également les bienvenus.

Répondre

1

Chaîne de connexion

connectionString = @"provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filename + @";Extended Properties=""Excel 12.0;HDR=YES;IMEX=1"""; 

de données de lecture

excelConnection = new System.Data.OleDb.OleDbConnection(connectionString); 
     excelConnection.Open(); 
     dbSchema = excelConnection.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null); 
     firstSheetName = dbSchema.Rows[0]["TABLE_NAME"].ToString(); 
     strSQL = "SELECT * FROM [" + firstSheetName + "]"; 
     da = new OleDbDataAdapter(strSQL, excelConnection); 
     da.Fill(dt); 

données d'écriture voir Excel Generation ce utilise l'automatisation bien. Cela peut aider.

1

Vous pouvez utiliser Excel Interop (Microsoft.Office.Interop.Excel):

Voici un extrait de quelque code:

object missing = (object) Type.Missing; 

Application app = new Application(); 

Workbooks books = app.Workbooks; 

Workbook book = books.Open("somefile.xls", missing, missing, missing, missing, missing, missing, 
      missing, missing, missing, missing, missing, missing, missing, missing); 

Worksheet sheet = (Worksheet)book.Worksheets[1]; 

Il a obtenu quelques bizarreries (comme les "disparus" paramètres) mais fonctionne assez bien. Si vous adoptez cette approche, veillez à ce que le processus EXCEL.exe ne soit pas orphelin.

Questions connexes