De Excel a tabla (Conversión)

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

EtiquetaExplicaciónTipo 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:

  • A2:C10: los valores de las columnas A a C, de las filas 2 a 10
  • B3:B40: los valores de la columna B, de las filas 3 a 40
  • D5:X5: los valores de las columnas D a X, de la fila 5
  • E200:ALM20000: los valores de las columnas E a ALM (columna n.º 1.000), de las filas 200 a 20.000

A continuación, se muestran algunos ejemplos de rangos de celdas no válidos:

  • A20:C10: la primera celda no puede estar más abajo (tener un número de fila mayor) que la segunda celda.
  • Z3:B5: la segunda celda no puede estar a la izquierda (tener una letra de columna menor) de la primera celda.
  • A5:G: ambas celdas deben tener un identificador de celda válido (una letra y un número).

Este parámetro solo está activo cuando el valor del parámetro Hoja o rango con nombre es una hoja.

String

arcpy.conversion.ExcelToTable(Input_Excel_File, Output_Table, {Sheet}, {field_names_row}, {cell_range})
NombreExplicaciónTipo 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:

  • A2:C10: los valores de las columnas A a C, de las filas 2 a 10
  • B3:B40: los valores de la columna B, de las filas 3 a 40
  • D5:X5: los valores de las columnas D a X, de la fila 5
  • E200:ALM20000: los valores de las columnas E a ALM (columna n.º 1.000), de las filas 200 a 20.000

A continuación, se muestran algunos ejemplos de rangos de celdas no válidos:

  • A20:C10: la primera celda no puede estar más abajo (tener un número de fila mayor) que la segunda celda.
  • Z3:B5: la segunda celda no puede estar a la izquierda (tener una letra de columna menor) de la primera celda.
  • A5:G: ambas celdas deben tener un identificador de celda válido (una letra y un número).

Este parámetro solo está habilitado cuando el valor del parámetro Sheet es una hoja.

String

Muestra de código

Ejemplo de ExcelToTable (ventana de Python)

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")
Ejemplo 2 de ExcelToTable (secuencia de comandos independiente)

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í

Temas relacionados