Czytasz arkusz Excela w skrypcie ArcPy?

12

Piszę kod Pythona do konwersji punktów X, Y w programie Excel do pliku kształtu. W tym procesie odczytałem punkty xy z shhet1. Jaki etap muszę wykonać w procesie odczytu danych z arkusza 1 książki roboczej programu Excel (97-2003).
Napisałem kod w następujący sposób ..

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

Ale to nie działa.

Satya Chandra
źródło
Spróbuj r „E: \” lub „E: /”
Aaron
tak, próbowałem już.
Satya Chandra
import xlrd nie działa. Poniższy błąd nie dotyczy modułu o nazwie xlrd.
Satya Chandra
Odkryłem, że openpyxl jest również bardzo przydatny do wczytywania arkuszy Excel i manipulowania nimi w połączeniu z Arcpy.
Cindy Jayakumar

Odpowiedzi:

28

To nie działa, ponieważ nie wywołałeś modułów Xlrd w celu odczytania arkusza kalkulacyjnego Excel. Zaimplementuj coś takiego:

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

Umożliwi to odczytanie pliku XLS w Pythonie. Jednak ArcPy będzie czytać XLS bez Xlrd. Skoroszyt programu Excel można uznać za obszar roboczy zawierający potencjalnie wiele tabel (arkuszy). Więc możesz zrobić coś takiego:

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

... lub przejdź do sedna za pomocą:

arcpy.MakeXYEventLayer_management(r'E:\123.xls\Sheet1$',lat,long,layername,SpatialRef)
MappaGnosis
źródło
k, dzięki czemu w jaki sposób mogę włączyć arkusz 1 do procesu. Mój krok jest następujący: arcpy.MakeXYEventLayer_management (input_table, lat, long, layername, SpatialRef). Muszę dołączyć ten arkusz1 do tabeli_wejściowej. Jak mogę?
Satya Chandra
Zobacz moje zmiany - możesz traktować plik .xls lub xlsx jako obszar roboczy.
MappaGnosis
6
+1 za wskazanie, że arkusz kalkulacyjny XLS faktycznie uważał PRZESTRZEŃ ROBOCZĄ w ArcGIS, a nie plik. „Arkusz” w pliku XLS można uznać za analogiczny do „tabeli” w geobazie.
RyanKDalton,
Odkryłem, że używanie tego formatu xls=r"E:\123.xls\Sheet1$"jest dość podejrzane - czasem działa, a czasem nie (wypróbowałem go na dwóch kopiach tego samego skoroszytu - działało na drugim, skrypt zawiesił się z „nie istnieje” " na inne).
Cindy Jayakumar
6

Nie wspominasz o wersji ArcGIS na komputery, ale jeśli jest to wersja 10.2 (lub nowsza), powinieneś być w stanie skorzystać z narzędzia Excel To Table , które:

Konwertuje pliki Microsoft Office Excel na tabelę.

Jego składnia to:

ExcelToTable_conversion (Input_Excel_File, Output_Table, {Sheet})
PolyGeo
źródło