¿Leer la hoja de Excel en el script de ArcPy?

12

Estoy escribiendo un código de Python para convertir los puntos X, Y en Excel a shapefile. En este proceso, tengo que leer los puntos xy de shhet1. ¿Cuál es el paso que debo incluir en mi proceso para leer datos de la hoja 1 de un libro de trabajo de Excel (97-2003)?
Escribí un código de la siguiente manera ...

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

Pero no está funcionando.

Satya Chandra
fuente
Prueba r "E: \" o "E: /"
Aaron
ya lo intenté
Satya Chandra
Importar xlrd no funciona. El error de la siguiente manera no es un módulo llamado xlrd.
Satya Chandra
He descubierto que openpyxl también es muy útil para leer y manipular hojas de Excel junto con arcpy.
Cindy Jayakumar

Respuestas:

28

No funciona porque no ha llamado a los módulos Xlrd para leer la hoja de cálculo de Excel. Implemente algo como esto:

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

Esto le permitirá leer un archivo XLS con Python. Sin embargo, ArcPy leerá XLS sin Xlrd. Puede considerar que el libro de Excel es un espacio de trabajo que contiene potencialmente muchas tablas (hojas de trabajo). Entonces podrías hacer algo como:

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

... o ir al grano con:

arcpy.MakeXYEventLayer_management(r'E:\123.xls\Sheet1$',lat,long,layername,SpatialRef)
MappaGnosis
fuente
k, gracias, entonces, cómo puedo incluir sheet1 en proceso. Mi paso es el siguiente arcpy.MakeXYEventLayer_management (input_table, lat, long, layername, SpatialRef). Tengo que incluir esa hoja1 en input_table. ¿Como puedo?
Satya Chandra
Vea mis ediciones: puede tratar un .xls o xlsx como un espacio de trabajo.
MappaGnosis
66
+1 por señalar que una hoja de cálculo XLS en realidad se considera un ESPACIO DE TRABAJO en ArcGIS, en lugar de un archivo. Una "hoja" dentro de un archivo XLS podría considerarse análoga a una "tabla" dentro de una geodatabase.
RyanKDalton
He descubierto que usar el formato xls=r"E:\123.xls\Sheet1$"es bastante dudoso: a veces funciona, a veces no funciona (lo he probado en dos copias del mismo libro de trabajo, funcionó para el otro, el guión se estrelló con "no existe " en el otro).
Cindy Jayakumar
6

No menciona su versión de ArcGIS for Desktop, pero si es 10.2 (o posterior), entonces debería poder usar la herramienta Excel To Table que:

Convierte archivos de Microsoft Office Excel en una tabla.

Su sintaxis es:

ExcelToTable_conversion (Input_Excel_File, Output_Table, {Sheet})
PolyGeo
fuente