Étiquette | Explication | Type 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 :
Voici quelques exemples de plages de cellules non valides :
| String |
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
arcpy.conversion.ExcelToTable(Input_Excel_File, Output_Table, {Sheet}, {field_names_row}, {cell_range})
Nom | Explication | Type 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 :
Voici quelques exemples de plages de cellules non valides :
| String |
Exemple de code
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")
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')
Vous avez un commentaire à formuler concernant cette rubrique ?