Etiqueta | Explicación | Tipo de datos |
Archivo Excel de entrada | Archivo Excel que se va a convertir. | File |
Tabla de Salida | La tabla de salida. | Table |
Hoja o rango con nombre (Opcional) | Nombre de la hoja concreta o del rango con nombre del archivo Excel que se va a importar. Si no se especifica, se utilizará la primera hoja del libro. Los rangos con nombre solo son compatibles con archivos .xlsx. Solo se admiten rangos con nombre con un solo rango (por ejemplo, Sheet!A1:B5); los rangos con nombre con varios rangos son incompatibles (por ejemplo, Sheet!A1:B5,Sheet!D1:D5). | String |
Fila a utilizar como nombres de campo (Opcional) | Fila de la hoja de Excel que contiene los valores que se utilizarán como nombres de campo. El valor predeterminado es 1. La fila especificada se omitirá al convertir los registros a la tabla de salida. Si el valor del parámetro Hoja o rango con nombre es un rango con nombre, el valor de este parámetro se establecerá de forma predeterminada en la fila mínima del rango con nombre. El valor también se limitará al número de filas mínimas y máximas del rango con nombre. Para evitar utilizar los valores de cualquier fila como nombres de campo, establezca este parámetro en 0, lo cual nombrará a los campos de salida utilizando la letra de la columna (por ejemplo: COL_A, COL_B, COL_C). Si la celda de una columna en concreto está vacía, el nombre de campo de salida se basará en la letra de la columna. Por ejemplo, si la entrada tiene tres columnas, y la fila contiene "city", "" y "country" en las columnas A, B y C, respectivamente, los nombres de campo de la tabla de salida serán city, COL_B y country. | Long |
Rango de celdas (Opcional) | Rango de celdas. Este parámetro se deshabilita cuando se selecciona un rango con nombre. Si no se especifica un rango de celdas, la herramienta utilizará las celdas de inicio y final de la hoja especificada. Una celda es la intersección de una fila y una columna. Las columnas se identifican mediante letras (A, B, C, D); las filas, mediante números (1, 2, 3, 4). Cada celda tiene una dirección según su columna y su fila. Por ejemplo, la celda B9 es la intersección de la columna B y la fila 9. Un rango de celdas define un rectángulo utilizando la celda superior izquierda y la celda inferior derecha, separadas por dos puntos (:). Los rangos de celdas son inclusivos, de modo que el rango A2:C10 incluirá todos los valores de las columnas A a C y todos los valores de las filas 2 a 10. Los nombres de campo de salida se obtienen de los valores de celda de la fila 1, independientemente de las filas especificadas en el rango de celdas. Por ejemplo, si el rango de celdas especificado es B2:D10, los nombres de campo se basarán en los valores de las celdas B1, C1 y D1. A continuación, se muestran algunos ejemplos de rangos de celdas válidos:
A continuación, se muestran algunos ejemplos de rangos de celdas no válidos:
Este parámetro solo está activo cuando el valor del parámetro Hoja o rango con nombre es una hoja. | String |
Resumen
Convierte archivos de Microsoft Excel en una tabla.
Uso
Se admiten como entrada los formatos Libros de Excel (.xlsx) y Libro de Excel 5.0/95 (.xls).
El tipo de datos del campo de salida se basa en los valores y en el formato de las celdas de la columna de entrada. Entre los tipos de datos del campo de salida están: doble, entero largo, texto y fecha. Si una columna de entrada contiene más de un tipo de datos o de formato, el tipo del campo de salida será de texto.
El valor "#N/A" en una celda de Excel de entrada se convertirá a nulo. Si el formato de tabla de salida (por ejemplo, tabla de dBASE) no admite valores nulos, se utilizará otro valor (0 para los campos de tipo entero o una cadena vacía para los campos de texto).
Parámetros
arcpy.conversion.ExcelToTable(Input_Excel_File, Output_Table, {Sheet}, {field_names_row}, {cell_range})
Nombre | Explicación | Tipo de datos |
Input_Excel_File | Archivo Excel que se va a convertir. | File |
Output_Table | La tabla de salida. | Table |
Sheet (Opcional) | Nombre de la hoja concreta o del rango con nombre del archivo Excel que se va a importar. Si no se especifica, se utilizará la primera hoja del libro. Los rangos con nombre solo son compatibles con archivos .xlsx. Solo se admiten rangos con nombre con un solo rango (por ejemplo, Sheet!A1:B5); los rangos con nombre con varios rangos son incompatibles (por ejemplo, Sheet!A1:B5,Sheet!D1:D5). | String |
field_names_row (Opcional) | Fila de la hoja de Excel que contiene los valores que se utilizarán como nombres de campo. El valor predeterminado es 1. La fila especificada se omitirá al convertir los registros a la tabla de salida. Si el valor del parámetro Sheet es un rango con nombre, el valor de este parámetro se establecerá de forma predeterminada en la fila mínima del rango con nombre. El valor también se limitará al número de filas mínimas y máximas del rango con nombre. Para evitar utilizar los valores de cualquier fila como nombres de campo, establezca este parámetro en 0, lo cual nombrará a los campos de salida utilizando la letra de la columna (por ejemplo: COL_A, COL_B, COL_C). Si la celda de una columna en concreto está vacía, el nombre de campo de salida se basará en la letra de la columna. Por ejemplo, si la entrada tiene tres columnas, y la fila contiene "city", "" y "country" en las columnas A, B y C, respectivamente, los nombres de campo de la tabla de salida serán city, COL_B y country. | Long |
cell_range (Opcional) | Rango de celdas. Este parámetro se deshabilita cuando se selecciona un rango con nombre. Si no se especifica un rango de celdas, la herramienta utilizará las celdas de inicio y final de la hoja especificada. Una celda es la intersección de una fila y una columna. Las columnas se identifican mediante letras (A, B, C, D); las filas, mediante números (1, 2, 3, 4). Cada celda tiene una dirección según su columna y su fila. Por ejemplo, la celda B9 es la intersección de la columna B y la fila 9. Un rango de celdas define un rectángulo utilizando la celda superior izquierda y la celda inferior derecha, separadas por dos puntos (:). Los rangos de celdas son inclusivos, de modo que el rango A2:C10 incluirá todos los valores de las columnas A a C y todos los valores de las filas 2 a 10. Los nombres de campo de salida se obtienen de los valores de celda de la fila 1, independientemente de las filas especificadas en el rango de celdas. Por ejemplo, si el rango de celdas especificado es B2:D10, los nombres de campo se basarán en los valores de las celdas B1, C1 y D1. A continuación, se muestran algunos ejemplos de rangos de celdas válidos:
A continuación, se muestran algunos ejemplos de rangos de celdas no válidos:
Este parámetro solo está habilitado cuando el valor del parámetro Sheet es una hoja. | String |
Muestra de código
La siguiente secuencia de comandos de la ventana de Python muestra cómo utilizar la función ExcelToTable de modo inmediato.
import arcpy
arcpy.env.workspace = "c:/data"
arcpy.conversion.ExcelToTable("data.xls", "outgdb.gdb", "Sheet1")
Importar cada hoja de un archivo Excel a tablas individuales en una geodatabase.
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')
Información de licenciamiento
- Basic: Sí
- Standard: Sí
- Advanced: Sí