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
(Facultatif)

Nom de la feuille du fichier Excel à importer. Si le nom n'est pas précisé, la première feuille du classeur est utilisée.

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

Ligne du fichier 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.

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 à inclure.

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 à droite (posséder une lettre de colonne supérieure) de la première.
  • A5:G - les deux cellules doivent posséder un identificateur valide, à savoir une lettre et un numéro.

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 du fichier Excel à importer. Si le nom n'est pas précisé, la première feuille du classeur est utilisée.

String
field_names_row
(Facultatif)

Ligne du fichier 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.

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 à inclure.

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 à droite (posséder une lettre de colonne supérieure) de la première.
  • A5:G - les deux cellules doivent posséder un identificateur valide, à savoir une lettre et un numéro.

String

Exemple de code

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

La fenêtre de script Python suivante illustre l’utilisation de 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')