Excel in Tabelle (Conversion)

Zusammenfassung

Konvertiert Microsoft Excel-Dateien in eine Tabelle.

Verwendung

  • Excel-Arbeitsmappen (.xlsx) und Excel 5.0/95-Arbeitsmappenformate (.xls) werden als Eingabe unterstützt.

  • Der Datentyp des Ausgabefeldes basiert auf den Werten und der Zellenformatierung in der Eingabespalte. Die Datentypen der Ausgabefelder sind "Double", "Long Integer", "Text" und "Datum". Wenn eine Eingabespalte mehrere Daten- oder Formatierungstypen enthält, ist das Ausgabefeld vom Typ "Text".

  • Der Wert "#N/A" in einer Excel-Eingabezelle wird in NULL konvertiert. Wenn das Format der Ausgabetabelle (zum Beispiel einer dBASE-Tabelle) den Wert NULL nicht unterstützt, wird ein anderer Wert (0 für ganzzahlige Felder oder eine leere Zeichenfolge für Textfelder) verwendet.

Parameter

BeschriftungErläuterungDatentyp
Eingabe-Excel-Datei

Die Excel-Datei, die konvertiert werden soll.

File
Ausgabetabelle

Dies ist die Ausgabetabelle.

Table
Tabellenblatt oder benannter Bereich
(optional)

Der Name des Tabellenblatts oder benannten Bereichs in der Excel-Datei, die importiert werden soll. Falls keine Angabe erfolgt ist, wird das erste Tabellenblatt in der Arbeitsmappe verwendet.

Benannte Bereiche werden nur für .xlsx-Dateien unterstützt. Unterstützt werden nur benannte Bereiche mit einem einzelnen Bereich (zum Beispiel Sheet!A1:B5). Benannte Bereiche mit mehreren Bereichen (zum Beispiel Sheet!A1:B5,Sheet!D1:D5) werden nicht unterstützt.

String
Zeile, die als Feldnamen verwendet werden soll
(optional)

Die Zeile in der Excel-Tabelle, in der die Werte, die als Feldnamen verwendet werden sollen, enthalten sind. Der Standardwert ist 1.

Die angegebene Zeile wird beim Konvertieren der Datensätze in die Ausgabetabelle übersprungen.

Wenn der Wert des Parameters Tabellenblatt oder benannter Bereich ein benannter Bereich ist, dann wird der Wert dieses Parameters auf die Zeile für das Minimum des benannten Bereichs festgelegt. Der Wert wird auch auf die minimale und maximale Zeilennummer des benannten Bereichs beschränkt.

Um zu verhindern, dass Werte einer Zeile als Feldnamen verwendet werden, legen Sie diesen Parameter auf 0 fest. Dadurch erhalten die Ausgabefelder ihren Namen unter Verwendung des Spaltenbuchstabens (zum Beispiel: COL_A, COL_B, COL_C).

Wenn eine Zelle in einer bestimmten Spalte leer ist, basiert der Ausgabefeldname auf dem Spaltenbuchstaben. Wenn zum Beispiel die Eingabe drei Spalten enthält und die Zeile die Werte "city", "" und "country" in den Spalten A, B bzw. C enthält, dann erhalten die Felder der Ausgabetabelle die folgenden Namen: city, COL_B und country.

Long
Zellenbereich
(optional)

Der Zellenbereich. Dieser Parameter wird deaktiviert, wenn ein benannter Bereich ausgewählt ist.

Wird kein Zellenbereich angegeben, verwendet das Werkzeug die Start- und Endzellen des angegebenen Tabellenblatts.

Eine Zelle ist der Schnittpunkt einer Zeile und einer Spalte. Spalten werden mit Buchstaben (A, B, C, D) und Zeilen mit Zahlen (1, 2, 3, 4) angegeben. Die Adresse jeder Zelle basiert auf ihrer Spalte und ihrer Zeile. Zum Beispiel ist die Zelle B9 der Schnittpunkt aus Spalte B und Zeile 9.

Ein Zellenbereich definiert ein Rechteck unter Angabe der Zelle links oben und der Zelle rechts unten, die durch einen Doppelpunkt (:) getrennt werden. Zellenbereiche sind einschließlich, das heißt, der Bereich A2:C10 beinhaltet alle Werte in den Spalten A bis C und alle Werte in den Zeilen 2 bis 10.

Die Ausgabefeldnamen werden ungeachtet der Zeilen, die im Zellenbereich angegeben sind, von den Zellenwerten in Zeile 1 abgeleitet. Wenn zum Beispiel B2:D10 als Zellenbereich angegeben wurde, basieren die Feldnamen auf den Werten in den Zellen B1, C1 und D1.

Nachfolgend finden Sie Beispiele für gültige Zellenbereiche:

  • A2:C10: Zellenbereich mit den Werten in den Spalten A bis C der Zeilen 2 bis 10
  • B3:B40: Zellenbereich mit den Werten in Spalte B der Zeilen 3 bis 40
  • D5:X5: Zellenbereich mit den Werten in den Spalten D bis X der Zeile 5
  • E200:ALM20000: Zellenbereich mit den Werten in den Spalten E bis ALM (die 1000. Spalte) der Zeilen 200 bis 20000

Nachfolgend finden Sie Beispiele für ungültige Zellenbereiche:

  • A20:C10: Die erste Zelle darf nicht weiter unten liegen (eine größere Zeilennummer haben) als die zweite Zelle.
  • Z3:B5: Die zweite Zelle darf nicht weiter links liegen (einen kleineren Spaltenbuchstaben haben) als die erste Zelle.
  • A5:G: Beide Zellen müssen eine gültige Zellenkennung besitzen, das heißt, einen Buchstaben und eine Zahl.

Dieser Parameter ist nur aktiv, wenn der Wert des Parameters Tabellenblatt oder benannter Bereich ein Tabellenblatt ist.

String

arcpy.conversion.ExcelToTable(Input_Excel_File, Output_Table, {Sheet}, {field_names_row}, {cell_range})
NameErläuterungDatentyp
Input_Excel_File

Die Excel-Datei, die konvertiert werden soll.

File
Output_Table

Dies ist die Ausgabetabelle.

Table
Sheet
(optional)

Der Name des Tabellenblatts oder benannten Bereichs in der Excel-Datei, die importiert werden soll. Falls keine Angabe erfolgt ist, wird das erste Tabellenblatt in der Arbeitsmappe verwendet.

Benannte Bereiche werden nur für .xlsx-Dateien unterstützt. Unterstützt werden nur benannte Bereiche mit einem einzelnen Bereich (zum Beispiel Sheet!A1:B5). Benannte Bereiche mit mehreren Bereichen (zum Beispiel Sheet!A1:B5,Sheet!D1:D5) werden nicht unterstützt.

String
field_names_row
(optional)

Die Zeile in der Excel-Tabelle, in der die Werte, die als Feldnamen verwendet werden sollen, enthalten sind. Der Standardwert ist 1.

Die angegebene Zeile wird beim Konvertieren der Datensätze in die Ausgabetabelle übersprungen.

Wenn der Wert des Parameters Sheet ein benannter Bereich ist, dann wird der Wert dieses Parameters auf die Zeile für das Minimum des benannten Bereichs festgelegt. Der Wert wird auch auf die minimale und maximale Zeilennummer des benannten Bereichs beschränkt.

Um zu verhindern, dass Werte einer Zeile als Feldnamen verwendet werden, legen Sie diesen Parameter auf 0 fest. Dadurch erhalten die Ausgabefelder ihren Namen unter Verwendung des Spaltenbuchstabens (zum Beispiel: COL_A, COL_B, COL_C).

Wenn eine Zelle in einer bestimmten Spalte leer ist, basiert der Ausgabefeldname auf dem Spaltenbuchstaben. Wenn zum Beispiel die Eingabe drei Spalten enthält und die Zeile die Werte "city", "" und "country" in den Spalten A, B bzw. C enthält, dann erhalten die Felder der Ausgabetabelle die folgenden Namen: city, COL_B und country.

Long
cell_range
(optional)

Der Zellenbereich. Dieser Parameter wird deaktiviert, wenn ein benannter Bereich ausgewählt ist.

Wird kein Zellenbereich angegeben, verwendet das Werkzeug die Start- und Endzellen des angegebenen Tabellenblatts.

Eine Zelle ist der Schnittpunkt einer Zeile und einer Spalte. Spalten werden mit Buchstaben (A, B, C, D) und Zeilen mit Zahlen (1, 2, 3, 4) angegeben. Die Adresse jeder Zelle basiert auf ihrer Spalte und ihrer Zeile. Zum Beispiel ist die Zelle B9 der Schnittpunkt aus Spalte B und Zeile 9.

Ein Zellenbereich definiert ein Rechteck unter Angabe der Zelle links oben und der Zelle rechts unten, die durch einen Doppelpunkt (:) getrennt werden. Zellenbereiche sind einschließlich, das heißt, der Bereich A2:C10 beinhaltet alle Werte in den Spalten A bis C und alle Werte in den Zeilen 2 bis 10.

Die Ausgabefeldnamen werden ungeachtet der Zeilen, die im Zellenbereich angegeben sind, von den Zellenwerten in Zeile 1 abgeleitet. Wenn zum Beispiel B2:D10 als Zellenbereich angegeben wurde, basieren die Feldnamen auf den Werten in den Zellen B1, C1 und D1.

Nachfolgend finden Sie Beispiele für gültige Zellenbereiche:

  • A2:C10: Zellenbereich mit den Werten in den Spalten A bis C der Zeilen 2 bis 10
  • B3:B40: Zellenbereich mit den Werten in Spalte B der Zeilen 3 bis 40
  • D5:X5: Zellenbereich mit den Werten in den Spalten D bis X der Zeile 5
  • E200:ALM20000: Zellenbereich mit den Werten in den Spalten E bis ALM (die 1000. Spalte) der Zeilen 200 bis 20000

Nachfolgend finden Sie Beispiele für ungültige Zellenbereiche:

  • A20:C10: Die erste Zelle darf nicht weiter unten liegen (eine größere Zeilennummer haben) als die zweite Zelle.
  • Z3:B5: Die zweite Zelle darf nicht weiter links liegen (einen kleineren Spaltenbuchstaben haben) als die erste Zelle.
  • A5:G: Beide Zellen müssen eine gültige Zellenkennung besitzen, das heißt, einen Buchstaben und eine Zahl.

Dieser Parameter wird nur dann aktiviert, wenn der Wert des Parameters Sheet ein Tabellenblatt ist.

String

Codebeispiel

ExcelToTable: Beispiel (Python-Fenster)

Das folgende Skript für das Python-Fenster veranschaulicht, wie die Funktion ExcelToTable im unmittelbaren Modus verwendet wird.

import arcpy
arcpy.env.workspace = "c:/data"
arcpy.conversion.ExcelToTable("data.xls", "outgdb.gdb", "Sheet1")
ExcelToTable: Beispiel 2 (eigenständiges Skript)

Importiert jede Tabelle aus einer Excel-Datei in einzelne Tabellen in einer 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')

Lizenzinformationen

  • Basic: Ja
  • Standard: Ja
  • Advanced: Ja

Verwandte Themen