Partager via


Comment : mapper des colonnes ListObject aux données

Mise à jour : novembre 2007

S'applique à

Les informations de cette rubrique s'appliquent uniquement aux projets Visual Studio Tools pour Office et versions de Microsoft Office spécifiés.

Projets au niveau du document

  • Excel 2007

  • Excel 2003

Projets au niveau de l'application

  • Excel 2007

Pour plus d'informations, consultez Fonctionnalités disponibles par type d'application et de projet.

Lorsque vous liez un contrôle ListObject à DataTable, vous ne souhaitez peut-être pas afficher toutes les colonnes d'une liste ou vous pouvez avoir des colonnes non liées aux données. Vous pouvez mapper les colonnes que vous souhaitez voir apparaître dans le contrôle ListObject lorsque vous appelez la méthode SetDataBinding.

Mappage de colonnes

Pour mapper une table de données aux colonnes d'une liste

  1. Créez DataTable au niveau de la classe.

    Dim table As System.Data.DataTable = New System.Data.DataTable("Employees")
    
    System.Data.DataTable table = new System.Data.DataTable("Employees");
    
  2. Ajoutez des colonnes d'exemple et des données dans le gestionnaire d'événements Startup de la classe Sheet1 (dans un projet au niveau du document) ou dans la classe ThisAddIn (dans un projet au niveau de l'application).

    table.Columns.Add("Id", GetType(Int32))
    table.Columns.Add("FirstName", GetType(String))
    table.Columns.Add("LastName", GetType(String))
    table.Columns.Add("Title", GetType(String))
    
    table.Rows.Add(1, "Nancy", "Anderson", "Sales Representative")
    table.Rows.Add(2, "Robert", "Brown", "Sales Representative")
    
    table.Columns.Add("Id", typeof(int));
    table.Columns.Add("FirstName", typeof(string));
    table.Columns.Add("LastName", typeof(string));
    table.Columns.Add("Title", typeof(string));
    
    table.Rows.Add(1, "Nancy", "Anderson", "Sales Representative");
    table.Rows.Add(2, "Robert", "Brown", "Sales Representative");
    
  3. Appelez la méthode SetDataBinding et passez le nom des colonnes dans l'ordre dans lequel elles doivent apparaître. L'objet de liste sera lié au nouveau DataTable, mais l'ordre des colonnes dans l'objet de liste sera différent de l'ordre dans lequel elles apparaissent dans DataTable.

    Me.List1.AutoSetDataBoundColumnHeaders = True
    Me.List1.SetDataBinding(table, "", "Title", "LastName", "FirstName")
    
    this.list1.AutoSetDataBoundColumnHeaders = true;
    this.list1.SetDataBinding(table, "", "Title", "LastName", "FirstName");
    

Spécification de colonnes non mappées

Lorsque vous mappez des colonnes à DataTable, vous pouvez également spécifier que certaines colonnes ne doivent pas être liées aux données en passant une chaîne vide. Une nouvelle colonne qui n'est pas liée aux données est alors ajoutée au contrôle ListObject.

Pour spécifier une colonne non mappée lors du mappage des colonnes ListObject

  • Appelez la méthode SetDataBinding et passez le nom des colonnes dans l'ordre dans lequel elles doivent apparaître. Utilisez une chaîne vide pour indiquer l'endroit où une colonne non mappée est ajoutée ; dans le cas présent, entre la colonne de titre et la colonne de nom.

    Me.List1.SetDataBinding(table, "", "Title", "", "LastName", "FirstName")
    
    this.list1.SetDataBinding(table, "", "Title", "", "LastName", "FirstName");
    

Compilation du code

Cet exemple de code suppose qu'un contrôle ListObject nommé list1 existe dans la feuille de calcul dans laquelle ce code apparaît.

Voir aussi

Tâches

Comment : remplir de données des contrôles ListObject

Concepts

Extension de documents Word et de classeurs Excel dans des compléments d'application au moment de l'exécution.

Développement d'un complément d'application pour Excel

Ajout de contrôles à des documents Office au moment de l'exécution

ListObject, contrôle

Fonctionnement de la persistance de l'ordre des lignes et colonnes ListObject

Autres ressources

Contrôles sur des documents Office

Contrôles hôtes Excel