Comment : mapper des colonnes ListObject aux donnéesHow to: Map ListObject Columns to Data

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.When you bind a ListObject control to a DataTable, you might not want to display all the columns in a list, or you might have certain columns that are not bound to data. Vous pouvez mapper les colonnes que vous souhaitez voir apparaître dans le contrôle ListObject lorsque vous appelez la méthode SetDataBinding .You can map which columns you want to appear in the ListObject when you call the SetDataBinding method.

S’applique à : Les informations contenues dans cette rubrique s’appliquent aux projets de niveau document et aux projets de compléments VSTO pour Excel.Applies to: The information in this topic applies to document-level projects and VSTO add-in projects for Excel. Pour plus d’informations, consultez Fonctionnalités disponibles par type d’application et de projet Office.For more information, see Features Available by Office Application and Project Type.

lien vers la vidéo pour une démonstration vidéo connexe, consultez comment faire pour créer une liste dans Excel qui est connecté à une liste SharePoint ?.link to video For a related video demonstration, see How Do I: Create a List in Excel that is Connected to a SharePoint List?.

Mappage de colonnesMapping Columns

Pour mapper une table de données aux colonnes d’une listeTo map a data table to columns in a list

  1. Créez le DataTable au niveau de la classe.Create the DataTable at the class level.

    System.Data.DataTable table = new System.Data.DataTable("Employees");
    
    Dim table As System.Data.DataTable = New System.Data.DataTable("Employees")
    
  2. Ajoutez des exemples de colonnes et de données dans le gestionnaire d’événements Startup de la classe Sheet1 (dans un projet au niveau du document) ou de la classe ThisAddIn (dans un projet de complément VSTO).Add sample columns and data in the Startup event handler of the Sheet1 class (in a document-level project) or ThisAddIn class (in an VSTO Add-in project).

    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");
    
    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")
    
  3. Appelez la méthode SetDataBinding et passez le nom des colonnes dans l’ordre dans lequel elles doivent apparaître.Call the SetDataBinding method and pass in the column names in the order they should appear. L’objet de liste sera lié au DataTablenouvellement créé, mais l’ordre des colonnes dans l’objet de liste sera différent de l’ordre dans lequel elles apparaissent dans le DataTable.The list object will be bound to the newly-created DataTable, but the order of the columns in the list object will differ from the order they appear in the DataTable.

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

Spécification de colonnes non mappéesSpecifying Unmapped Columns

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.When you map columns to a DataTable, you can also specify that certain columns should not be bound to data by passing in an empty string. Une nouvelle colonne qui n’est pas liée aux données est alors ajoutée au contrôle ListObject .A new column that is not bound to data is then added to the ListObject control.

Pour spécifier une colonne non mappée lors du mappage de colonnes ListObjectTo specify an unmapped column when mapping ListObject columns

  1. Appelez la méthode SetDataBinding et passez les noms des colonnes dans l’ordre dans lequel elles doivent apparaître.Call the SetDataBinding method and pass in the column names in the order they should appear. 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.Use an empty string to indicate where an unmapped column is added; in this case, between the title column and the last name column.

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

Compilation du codeCompiling the Code

Cet exemple de code suppose qu’un ListObject nommé list1 existe dans la feuille de calcul dans laquelle ce code apparaît.This code example assumes you have an existing ListObject named list1 on the worksheet in which this code appears.

Voir aussiSee Also

Extension de Documents Word et classeurs Excel dans des Compléments VSTO au moment de l’exécution Extending Word Documents and Excel Workbooks in VSTO Add-ins at Run Time
Contrôles sur des Documents Office Controls on Office Documents
Ajout de contrôles aux Documents Office au moment de l’exécution Adding Controls to Office Documents at Run Time
Comment : remplir de données des contrôles ListObject How to: Fill ListObject Controls with Data
Automatisation d’Excel à l’aide d’objets étendus Automating Excel by Using Extended Objects
ListObject, contrôleListObject Control