¿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.


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)

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})
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.