Excel-Tabelle in ArcPy-Skript lesen?


12

Ich schreibe einen Python-Code, um X, Y-Punkte in Excel in Shapefile umzuwandeln. In diesem Prozess habe ich xy Punkte von shhet1 gelesen. Was ist der Schritt, den ich in meinen Prozess einbeziehen muss, um Daten aus Blatt 1 eines Excel-Arbeitsbuchs (97-2003) zu lesen?
Ich habe einen Code wie folgt geschrieben ..

import arcpy  
from arcpy import env  
import Xlrd  
env.workspace="E:\"  
input_table="123.xls\Sheet1" 

Aber es funktioniert nicht.


Versuchen Sie r "E: \" oder "E: /"
Aaron

ya ich habe es schon versucht.
Satya Chandra

xlrd importieren funktioniert nicht. Der Fehler lautet wie folgt: Kein Modul mit dem Namen xlrd.
Satya Chandra

Ich habe festgestellt, dass openpyxl auch sehr nützlich ist, um Excel-Tabellen in Verbindung mit arcpy einzulesen und zu bearbeiten.
Cindy Jayakumar

Antworten:


28

Es funktioniert nicht, weil Sie die Xlrd-Module nicht aufgerufen haben, um die Excel-Tabelle zu lesen. Implementiere es in etwa so:

import xlrd
workbook = xlrd.open_workbook('my_workbook.xls')
worksheet = workbook.sheet_by_name('Sheet1')

Auf diese Weise können Sie eine XLS-Datei mit Python lesen. ArcPy liest jedoch XLS ohne Xlrd. Sie können die Excel-Arbeitsmappe als Arbeitsbereich betrachten, der möglicherweise viele Tabellen (Arbeitsblätter) enthält. Sie könnten also etwas tun wie:

arcpy.env.workspace = r'E:\123.xls'
input_table = 'Sheet1$'

... oder auf den Punkt gebracht mit:

arcpy.MakeXYEventLayer_management(r'E:\123.xls\Sheet1$',lat,long,layername,SpatialRef)

k, danke dann, wie ich sheet1 in Prozess einschließen kann. Mein Schritt ist wie folgt: arcpy.MakeXYEventLayer_management (input_table, lat, long, layername, SpatialRef). Ich muss dieses sheet1 in input_table einschließen. Wie kann ich?
Satya Chandra

Meine Bearbeitungen anzeigen - Sie können eine XLS- oder XLSX-Datei als Arbeitsbereich behandeln.
MappaGnosis

6
+1 für den Hinweis, dass eine XLS-Tabelle in ArcGIS tatsächlich als WORKSPACE und nicht als Datei betrachtet wird. Ein "Blatt" in einer XLS-Datei kann als analog zu einer "Tabelle" in einer Geodatabase angesehen werden.
RyanKDalton

Ich habe festgestellt, dass die Verwendung des Formats xls=r"E:\123.xls\Sheet1$"ziemlich zweifelhaft ist - manchmal funktioniert es, manchmal nicht (ich habe es an zwei Kopien derselben Arbeitsmappe ausprobiert - es hat für die andere funktioniert, das Skript mit "abgestürzt" existiert nicht " auf dem anderen).
Cindy Jayakumar

6

Sie erwähnen Ihre ArcGIS for Desktop-Version nicht. Wenn es sich jedoch um 10.2 (oder höher) handelt, sollten Sie in der Lage sein, das Excel To Table- Tool zu verwenden, das:

Konvertiert Microsoft Office Excel-Dateien in eine Tabelle.

Ihre Syntax lautet:

ExcelToTable_conversion (Input_Excel_File, Output_Table, {Sheet})
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.