Leggendo il foglio Excel nello script ArcPy?


12

Sto scrivendo un codice Python per convertire i punti X, Y in Excel in shapefile. In questo processo ho preso punti xy da shhet1. Qual è il passo che devo includere nel mio processo per leggere i dati dal foglio 1 di un libro di lavoro Excel (97-2003).
Ho scritto un codice come segue ..

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

Ma non funziona.


Prova r "E: \" o "E: /"
Aaron

già ci ho provato.
Satya Chandra,

import xlrd non funziona. L'errore come segue non ha un modulo chiamato xlrd.
Satya Chandra,

Ho trovato openpyxl molto utile anche per leggere e manipolare fogli Excel insieme ad arcpy.
Cindy Jayakumar,

Risposte:


28

Non funziona perché non hai chiamato i moduli Xlrd per leggere il foglio di calcolo di Excel. Implementalo in questo modo:

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

Questo ti permetterà di leggere un file XLS con Python. Tuttavia, ArcPy leggerà XLS senza Xlrd. È possibile considerare la cartella di lavoro di Excel come un'area di lavoro contenente potenzialmente molte tabelle (fogli di lavoro). Quindi potresti fare qualcosa del tipo:

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

... o vai al sodo con:

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

k, grazie allora come posso includere sheet1 in elaborazione. Il mio passo è seguire arcpy.MakeXYEventLayer_management (input_table, lat, long, layername, SpatialRef). Devo includere quel foglio1 in input_table. Come posso?
Satya Chandra,

Vedi le mie modifiche: puoi trattare un .xls o xlsx come uno spazio di lavoro.
MappaGnosis,

6
+1 per aver sottolineato che un foglio di calcolo XLS in realtà ha considerato un WORKSPACE in ArcGIS, piuttosto che un file. Un "foglio" all'interno di un file XLS potrebbe essere considerato analogo a una "tabella" all'interno di un geodatabase.
RyanK Dalton,

Ho trovato che usare il formato xls=r"E:\123.xls\Sheet1$"è piuttosto complicato - a volte funziona, a volte no (l'ho provato su due copie della stessa cartella di lavoro - ha funzionato per l'altro, lo script si è bloccato con "non esiste " dall'altra).
Cindy Jayakumar,

6

Non menzionate la versione ArcGIS per desktop, ma se è 10.2 (o successive), dovreste essere in grado di utilizzare lo strumento Excel alla tabella che:

Converte i file di Microsoft Office Excel in una tabella.

La sua sintassi è:

ExcelToTable_conversion (Input_Excel_File, Output_Table, {Sheet})
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.