Excel vers table (Conversion)

Synthèse

Convertit des fichiers Microsoft Excel en table.

Utilisation

  • Les formats Classeurs Excel (.xlsx) et Classeur Excel 5.0/95 (.xls) sont pris en charge en entrée.

  • Le type de données de champ en sortie repose sur les valeurs et le format de cellule de la colonne en entrée. Les types de données de champ en sortie sont notamment double, entier long, flottant, texte et date. Si une colonne en entrée contient plusieurs types de données ou formats, le champ en sortie est de type texte.

  • La valeur "#N/A" dans une cellule Excel en entrée est convertie en valeur nulle. Si le format de la table en sortie (une table dBASE, par exemple) ne prend pas en charge les valeurs nulles, une autre valeur (0 pour les champs entiers ou une chaîne vide pour les champs de texte) sera utilisée.

Paramètres

ÉtiquetteExplicationType de données
Fichier Excel en entrée

Fichier Excel à convertir.

File
Table en sortie

Table en sortie.

Table
Feuille ou plage nommée
(Facultatif)

Nom de la feuille ou de la plage nommée dans le fichier Excel qui doit être importée. Si le nom n'est pas précisé, la première feuille du classeur est utilisée.

Les plages nommées ne sont prises en charge que pour les fichiers .xlsx. Seules les plages nommées avec une plage unique sont prises en charge (par exemple, Sheet!A1:B5) ; celles avec plusieurs plages ne le sont pas (par exemple, Sheet!A1:B5,Sheet!D1:D5).

String
Ligne à utiliser pour les noms de champ
(Facultatif)

Ligne de la feuille Excel qui contient les valeurs à utiliser comme noms de champs. La valeur par défaut est 1.

La ligne indiquée sera ignorée lors de la conversion des enregistrements dans la table en sortie.

Si la valeur du paramètre Feuille ou plage nommée est une plage nommée, ce paramètre aura pour valeur la ligne minimale de cette plage. La valeur sera également limitée au numéro de ligne maximal et minimal de la plage nommée.

Pour ne pas utiliser les valeurs d’une ligne comme noms de champ, définissez ce paramètre sur 0 ; les champs en sortie seront nommés en fonction de la lettre de la colonne (par exemple, COL_A, COL_B, COL_C).

Si une cellule d’une colonne donnée est vide, le nom du champ en sortie sera basé sur la lettre de la colonne. Par exemple, si l’entrée comporte trois colonnes et que la ligne contient "city", "" et "country" dans les colonnes A, B et C, respectivement, les noms des champs de la table en sortie seront les suivants : city, COL_B et country.

Long
Plage de cellules
(Facultatif)

Plage de cellules. Ce paramètre est désactivé lorsqu’une plage nommée est sélectionnée.

Si aucune plage de cellules n’est indiquée, l’outil utilise les cellules de début et de fin de la feuille spécifiée.

La cellule A correspond à l’intersection d’une ligne et d’une colonne. Les colonnes sont identifiées par des lettres (A, B, C, D) et les lignes, par des numéros (1, 2, 3, 4). Chaque cellule possède une adresse basée sur sa colonne et sa ligne. Par exemple, la cellule B9 correspond à l’intersection de la colonne B et de la ligne 9.

Une plage de cellules définit un rectangle à l’aide de la cellule supérieure gauche et de la cellule inférieure droite, séparées par un signe deux-points (:). Les plages de cellules sont inclusives ; ainsi, la plage A2:C10 inclut toutes les valeurs des colonnes A à C et toutes les valeurs des lignes 2 à 10.

Les noms de champ en sortie sont dérivés des valeurs des cellules de la ligne 1, quelles que soient les lignes spécifiées dans la plage de cellules. Par exemple, si la plage de cellules spécifiée est B2:D10, les noms des champs sont basés sur les valeurs des cellules B1, C1 et D1.

Voici quelques exemples de plages de cellules valides :

  • A2:C10 - valeurs des colonnes A à C, des lignes 2 à 10
  • B3:B40 - valeurs de la colonne B, des lignes 3 à 40
  • D5:X5 - Valeurs des colonnes D à X, pour la ligne 5
  • E200:ALM20000 - valeurs des colonnes E à ALM (1 000e colonne), des lignes 200 à 20 000

Voici quelques exemples de plages de cellules non valides :

  • A20:C10 - la première cellule ne peut pas être inférieure (posséder un numéro de ligne supérieur) à la seconde.
  • Z3:B5 – la seconde cellule ne peut pas être à gauche (posséder une lettre de colonne inférieure) de la première.
  • A5:G - les deux cellules doivent posséder un identificateur valide, à savoir une lettre et un numéro.

Ce paramètre n’est actif que si la valeur du paramètre Feuille ou plage nommée est une feuille.

String

arcpy.conversion.ExcelToTable(Input_Excel_File, Output_Table, {Sheet}, {field_names_row}, {cell_range})
NomExplicationType de données
Input_Excel_File

Fichier Excel à convertir.

File
Output_Table

Table en sortie.

Table
Sheet
(Facultatif)

Nom de la feuille ou de la plage nommée dans le fichier Excel qui doit être importée. Si le nom n'est pas précisé, la première feuille du classeur est utilisée.

Les plages nommées ne sont prises en charge que pour les fichiers .xlsx. Seules les plages nommées avec une plage unique sont prises en charge (par exemple, Sheet!A1:B5) ; celles avec plusieurs plages ne le sont pas (par exemple, Sheet!A1:B5,Sheet!D1:D5).

String
field_names_row
(Facultatif)

Ligne de la feuille Excel qui contient les valeurs à utiliser comme noms de champs. La valeur par défaut est 1.

La ligne indiquée sera ignorée lors de la conversion des enregistrements dans la table en sortie.

Si la valeur du paramètre Sheet est une plage nommée, ce paramètre aura pour valeur la ligne minimale de cette plage. La valeur sera également limitée au numéro de ligne maximal et minimal de la plage nommée.

Pour ne pas utiliser les valeurs d’une ligne comme noms de champ, définissez ce paramètre sur 0 ; les champs en sortie seront nommés en fonction de la lettre de la colonne (par exemple, COL_A, COL_B, COL_C).

Si une cellule d’une colonne donnée est vide, le nom du champ en sortie sera basé sur la lettre de la colonne. Par exemple, si l’entrée comporte trois colonnes et que la ligne contient "city", "" et "country" dans les colonnes A, B et C, respectivement, les noms des champs de la table en sortie seront les suivants : city, COL_B et country.

Long
cell_range
(Facultatif)

Plage de cellules. Ce paramètre est désactivé lorsqu’une plage nommée est sélectionnée.

Si aucune plage de cellules n’est indiquée, l’outil utilise les cellules de début et de fin de la feuille spécifiée.

La cellule A correspond à l’intersection d’une ligne et d’une colonne. Les colonnes sont identifiées par des lettres (A, B, C, D) et les lignes, par des numéros (1, 2, 3, 4). Chaque cellule possède une adresse basée sur sa colonne et sa ligne. Par exemple, la cellule B9 correspond à l’intersection de la colonne B et de la ligne 9.

Une plage de cellules définit un rectangle à l’aide de la cellule supérieure gauche et de la cellule inférieure droite, séparées par un signe deux-points (:). Les plages de cellules sont inclusives ; ainsi, la plage A2:C10 inclut toutes les valeurs des colonnes A à C et toutes les valeurs des lignes 2 à 10.

Les noms de champ en sortie sont dérivés des valeurs des cellules de la ligne 1, quelles que soient les lignes spécifiées dans la plage de cellules. Par exemple, si la plage de cellules spécifiée est B2:D10, les noms des champs sont basés sur les valeurs des cellules B1, C1 et D1.

Voici quelques exemples de plages de cellules valides :

  • A2:C10 - valeurs des colonnes A à C, des lignes 2 à 10
  • B3:B40 - valeurs de la colonne B, des lignes 3 à 40
  • D5:X5 - Valeurs des colonnes D à X, pour la ligne 5
  • E200:ALM20000 - valeurs des colonnes E à ALM (1 000e colonne), des lignes 200 à 20 000

Voici quelques exemples de plages de cellules non valides :

  • A20:C10 - la première cellule ne peut pas être inférieure (posséder un numéro de ligne supérieur) à la seconde.
  • Z3:B5 – la seconde cellule ne peut pas être à gauche (posséder une lettre de colonne inférieure) de la première.
  • A5:G - les deux cellules doivent posséder un identificateur valide, à savoir une lettre et un numéro.

Ce paramètre est actif uniquement si la valeur du paramètre Sheet est une feuille.

String

Exemple de code

Exemple d’utilisation de la fonction ExcelToTable (fenêtre Python)

Le script ci-dessous pour la fenêtre Python montre comment utiliser la fonction ExcelToTable en mode immédiat.

import arcpy
arcpy.env.workspace = "c:/data"
arcpy.conversion.ExcelToTable("data.xls", "outgdb.gdb", "Sheet1")
Exemple 2 d'utilisation de la fonction ExcelToTable (script autonome)

Importez chaque feuille d’un fichier Excel dans des tables individuelles d’une géodatabase.

import os
import xlrd
import openpyxl
import arcpy

def importallsheets(in_excel, out_gdb):
    if in_excel.endswith(".xlsx"):
        workbook = openpyxl.load_workbook(in_excel)
        sheets = workbook.sheetnames
    elif in_excel.endswith(".xls"):
        workbook = xlrd.open_workbook(in_excel)
        sheets = [sheet.name for sheet in workbook.sheets()]
    else:
        print("An Excel Workbook of format .xls or .xlsx is required.")
        return

    print('{} sheets found: {}'.format(len(sheets), ','.join(sheets)))
    for sheet in sheets:
        # The out_table is based on the input Excel file name
        # an underscore (_) separator followed by the sheet name
        out_table = os.path.join(
            out_gdb,
            arcpy.ValidateTableName(
                "{0}_{1}".format(os.path.basename(in_excel), sheet),
                out_gdb))

        print('Converting {} to {}'.format(sheet, out_table))

        # Perform the conversion
        arcpy.conversion.ExcelToTable(in_excel, out_table, sheet)

if __name__ == '__main__':
    importallsheets('c:/data/data.xls',
                    'c:/data/outgdb.gdb')

Informations de licence

  • Basic: Oui
  • Standard: Oui
  • Advanced: Oui

Rubriques connexes