Mapper des colonnes ListObject aux données

Lorsque vous liez un contrôle ListObject à un DataTable, vous ne souhaitez peut-être pas afficher toutes les colonnes d’une liste ou vous pouvez avoir certaines colonnes non qui ne sont pas 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 .

S’applique à : les informations contenues dans cette rubrique s’appliquent aux projets au niveau du document et aux projets de complément VSTO pour Excel. Pour plus d’informations, consultez Fonctionnalités disponibles par application Office lication et le type de projet.

Mapper les colonnes

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

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

    System.Data.DataTable table = new System.Data.DataTable("Employees");
    
  2. Ajoutez des exemples de colonnes et de données dans le Startup gestionnaire d’événements de la Sheet1 classe (dans un projet au niveau du document) ou ThisAddIn une classe (dans un projet de complément VSTO).

    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 est lié au nouvel objet créé DataTable, mais l’ordre des colonnes de l’objet de liste diffère de l’ordre dans lequel DataTableils apparaissent.

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

Spécifier des colonnes non mappées

Lorsque vous mappez des colonnes à un 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 de colonnes ListObject

  1. 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.

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

Compiler le code

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