Beschriftung | Erläuterung | Datentyp |
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:
Nachfolgend finden Sie Beispiele für ungültige Zellenbereiche:
Dieser Parameter ist nur aktiv, wenn der Wert des Parameters Tabellenblatt oder benannter Bereich ein Tabellenblatt ist. | 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 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:
Nachfolgend finden Sie Beispiele für ungültige Zellenbereiche:
Dieser Parameter wird nur dann aktiviert, wenn der Wert des Parameters Sheet ein Tabellenblatt ist. | 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')
Lizenzinformationen
- Basic: Ja
- Standard: Ja
- Advanced: Ja