IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Oledb avec Excel


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Oledb avec Excel
    Bonjour,
    J'aimerai accéder à la valeur d'une cellule de mon fichier Excel (.xlsm).
    Et au passage si quelqu'un à des tuto: un lien ou des pdf de cours, je suis preneur. Je n'ai rien trouvé sur le net.

    Merci

  2. #2
    Membre Expert Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Par défaut
    Il y a une façon relativement simple via la dll fournit par Microsoft.
    Un peu de doc ici, et un exemple :

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    using Microsoft.Office.Interop;
     
    [....]
    OpenFileDialog ofDialog = new OpenFileDialog();
     
    ofDialog.Filter = "Excel 2003 Files (.xls)|*.xls";
     
    Microsoft.Office.Interop.Excel.Application xlApp;
    Microsoft.Office.Interop.Excel.Workbook xlWorkbook;
    Microsoft.Office.Interop.Excel._Worksheet xlWorksheet;
     
    DialogResult dResult = ofDialog.ShowDialog();
    if (true)
    {
    	try
    	{
    		xlApp = new Microsoft.Office.Interop.Excel.Application();
    		xlWorkbook = xlApp.Workbooks.Open(ofDialog.FileName);
    		xlWorksheet = xlWorkbook.Sheets[1];
    		Microsoft.Office.Interop.Excel.Range xlRange = xlWorksheet.UsedRange;
     
    		int rowCount = xlRange.Rows.Count;
    		int colCount = xlRange.Columns.Count;
     
    		// Read the Excel file entirely
    		List<String> labels = new List<String>();
    		for (int i = 0; i < rowCount; i++)
    		{
    			for (int j = 0; j < colCount; j++)
    			{
    				try
    				{
    					labels.Add(xlRange.Cells[i, j].Text);
    				}
    				catch (Exception) { }
    			}
    		}
    	}
    	catch (Exception ee)
    	{
    		System.Windows.Forms.MessageBox.Show(ee.Message);
    	}
    }

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci.
    Où est ce que je rentre l'URL de mon fichier Excel? C'est dans ofDialog.Filter?
    Dans ce cas là je mets ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ofDialog.Filter = "C:\\Users\\Ziad\\Documents\\Visual Studio 2010\\Projects\\PPE\\PlaceBourciere.xlsm";
    ?
    Et aussi OpenFileDialog et DialogResult appartiennent bien à l'espace System.Windows.Forms? Quant je mets cet espace, une erreur est signalé. Windows est souligné en rouge et me dit qu'il n'existe pas dans l'espace de noms 'System'.
    Dernière modification par Invité ; 08/02/2012 à 22h43.

  4. #4
    Membre Expert Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Par défaut
    J'utilise un OpenFileDialog comme "browser" depuis une application WPF.
    Tu peux directement fourni un chemin vers ton fichier :

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    xlWorkbook = xlApp.Workbooks.Open(@"C:\Temp\myExcel.xls");

  5. #5
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Sinon, pour en revenir à la question initiale, oui, avec OLEDB tu peux accéder à Excel, et chaque onglet est vu comme une table différente.

    Selon ce que tu veux faire, ça peut être beaucoup plus pratique ou largement moins qu'avec le module interopérabilité Microsoft.

    A noter que OLEDB dispense d'avoir Office sur la machine pour travailler avec les fichiers Excel, alors qu'Interop impose d'avoir Office installé (qui plus est, dans une version donnée, figée)

    http://www.connectionstrings.com/excel-2007

    http://www.connectionstrings.com/excel

  6. #6
    Invité
    Invité(e)
    Par défaut
    D'accord merci pour vos reponces.
    Génial StringBuilder j'allais justement poster une question concernant le fait qu'Office soit installé ou pas.

    À propos de ce sujet, le code de Er3van utilise bien le module d'interopérabilité de Microsoft? Et donc l'utilisateur de mon logiciel devra avoir Office :S.

    N'y a t'il pas une autre solution que celle ci pour accéder à la cellule d'un classeur Excel?

Discussions similaires

  1. [PowerShell] Lire un fichier Excel avec OLEDB (sans Excel)
    Par sodawillow dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 22/11/2014, 16h10
  2. [MFC] [CRecordset] Problème avec Excel
    Par Yellowmat dans le forum MFC
    Réponses: 4
    Dernier message: 20/07/2005, 15h24
  3. [MFC] OLEDB et Excel
    Par Capnader dans le forum MFC
    Réponses: 3
    Dernier message: 22/04/2005, 18h41
  4. Analyse avec Excel
    Par Ric500 dans le forum Access
    Réponses: 6
    Dernier message: 15/02/2005, 15h12
  5. [C#] [EXCEL] Travailler avec EXCEL sans ouvrir le logiciel
    Par Fabsou dans le forum Windows Forms
    Réponses: 3
    Dernier message: 16/07/2004, 10h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo