50 votes

Comment lire un fichier Excel en C# sans utiliser les bibliothèques Microsoft.Office.Interop.Excel

J'ai une application .Net-Windows en C#. J'ai besoin d'ouvrir un fichier Excel et de le traiter. Comment puis-je le faire sans utiliser les bibliothèques Microsoft.Office.Interop.Excel ?

49voto

Aleksandar Vučetić Points 6983
var fileName = @"C:\ExcelFile.xlsx";
var connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended Properties=\"Excel 12.0;IMEX=1;HDR=NO;TypeGuessRows=0;ImportMixedTypes=Text\""; ;
using (var conn = new OleDbConnection(connectionString))
{
    conn.Open();

    var sheets = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
    using (var cmd = conn.CreateCommand())
    {
        cmd.CommandText = "SELECT * FROM [" + sheets.Rows[0]["TABLE_NAME"].ToString() + "] ";

        var adapter = new OleDbDataAdapter(cmd);
        var ds = new DataSet();
        adapter.Fill(ds);
    }
}

3voto

Hand-E-Food Points 5510

J'ai récemment trouvé cette bibliothèque qui convertit un fichier de classeur Excel en un DataSet : Excel Data Reader

2voto

Pete McKinney Points 503

Si vous devez ouvrir des fichiers XLS plutôt que des fichiers XLSX, http://npoi.codeplex.com/ est un excellent choix. Nous l'avons utilisé à bon escient sur nos projets.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X