Vous lisez une feuille Excel dans le script ArcPy?

12

J'écris un code python pour convertir X, Y points en excel en shapefile. Dans ce processus, j'ai des points xy à partir de shhet1. Quelle est l'étape que je dois inclure dans mon processus pour lire les données de la feuille1 d'un classeur Excel (97-2003).
J'ai écrit un code comme suit ..

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

Mais ça ne marche pas.

Satya Chandra
la source
Essayez r "E: \" ou "E: /"
Aaron
ouais j'ai déjà essayé.
Satya Chandra
import xlrd ne fonctionne pas. L'erreur comme suit aucun module nommé xlrd.
Satya Chandra
J'ai trouvé openpyxl très utile également pour lire et manipuler des feuilles Excel conjointement avec arcpy.
Cindy Jayakumar

Réponses:

28

Cela ne fonctionne pas car vous n'avez pas appelé les modules Xlrd pour lire la feuille de calcul Excel. Implémentez-le quelque chose comme ceci:

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

Cela vous permettra de lire un fichier XLS avec Python. Cependant, ArcPy lira XLS sans Xlrd. Vous pouvez considérer le classeur Excel comme un espace de travail contenant potentiellement de nombreuses tables (feuilles de calcul). Vous pouvez donc faire quelque chose comme:

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

... ou allez droit au but avec:

arcpy.MakeXYEventLayer_management(r'E:\123.xls\Sheet1$',lat,long,layername,SpatialRef)
MappaGnosis
la source
k, merci alors comment nous pouvons inclure sheet1 dans le processus. Mon étape est la suivante: arcpy.MakeXYEventLayer_management (input_table, lat, long, layername, SpatialRef). Je dois inclure cette feuille1 dans table_entrée. Comment puis-je?
Satya Chandra
Voir mes modifications - vous pouvez traiter un .xls ou xlsx comme un espace de travail.
MappaGnosis
6
+1 pour avoir souligné qu'une feuille de calcul XLS était en fait considérée comme un ESPACE DE TRAVAIL dans ArcGIS, plutôt qu'un fichier. Une "feuille" dans un fichier XLS pourrait être considérée comme analogue à une "table" dans une géodatabase.
RyanKDalton
J'ai trouvé que l'utilisation du format xls=r"E:\123.xls\Sheet1$"était assez douteuse - parfois cela fonctionne, parfois non (je l'ai essayé sur deux copies du même classeur - cela a fonctionné pour l'autre, le script s'est écrasé avec "n'existe pas " de l'autre).
Cindy Jayakumar
6

Vous ne mentionnez pas votre version d'ArcGIS for Desktop, mais s'il s'agit de la version 10.2 (ou ultérieure), vous devriez pouvoir utiliser l' outil Excel To Table qui:

Convertit les fichiers Microsoft Office Excel en tableau.

Sa syntaxe est:

ExcelToTable_conversion (Input_Excel_File, Output_Table, {Sheet})
PolyGeo
la source