Beschriftung | Erläuterung | Datentyp |
Eingabe-Excel-Datei | Die zu konvertierende Excel-Datei. | File |
Ausgabetabelle | Dies ist die Ausgabetabelle. | Table |
Tabellenblatt (optional) | Der Name des Tabellenblatts in der zu importierenden Excel-Datei. Falls keine Angabe erfolgt ist, wird das erste Tabellenblatt in der Arbeitsmappe verwendet. | 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. 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 zu berücksichtigende Zellenbereich. 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:
Nachfolgend finden Sie Beispiele für ungültige Zellenbereiche:
| String |
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
arcpy.conversion.ExcelToTable(Input_Excel_File, Output_Table, {Sheet}, {field_names_row}, {cell_range})
Name | Erläuterung | Datentyp |
Input_Excel_File | Die zu konvertierende Excel-Datei. | File |
Output_Table | Dies ist die Ausgabetabelle. | Table |
Sheet (optional) | Der Name des Tabellenblatts in der zu importierenden Excel-Datei. Falls keine Angabe erfolgt ist, wird das erste Tabellenblatt in der Arbeitsmappe verwendet. | 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. 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 zu berücksichtigende Zellenbereich. 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:
Nachfolgend finden Sie Beispiele für ungültige Zellenbereiche:
| String |
Codebeispiel
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")
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')