ArcPy 스크립트에서 Excel 시트를 읽습니까?


12

Excel의 X, Y 포인트를 shapefile로 변환하는 파이썬 코드를 작성 중입니다. 이 과정에서 shhet1에서 xy 포인트를 읽어야합니다. Excel 통합 문서 (97-2003)의 sheet1에서 데이터를 읽으려면 프로세스에 포함 해야하는 단계는 무엇입니까?
다음과 같이 코드를 작성했습니다.

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

그러나 작동하지 않습니다.


r "E : \"또는 "E : /"시도
Aaron

나중에 이미 시도했습니다.
Satya Chandra

xlrd 가져 오기가 작동하지 않습니다. 다음과 같은 오류는 xlrd라는 모듈이 없습니다.
Satya Chandra

openpyxl이 arcpy 와 함께 Excel 시트를 읽고 조작하는 데 매우 유용하다는 것을 알았 습니다.
Cindy Jayakumar

답변:


28

Excel 스프레드 시트를 읽기 위해 Xlrd 모듈을 호출하지 않았기 때문에 작동하지 않습니다. 다음과 같이 구현하십시오.

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

이를 통해 Python으로 XLS 파일을 읽을 수 있습니다. 그러나 ArcPy는 Xlrd없이 XLS를 읽습니다. Excel 통합 문서를 잠재적으로 많은 테이블 (워크 시트)이 포함 된 작업 영역으로 간주 할 수 있습니다. 그래서 당신은 다음과 같은 것을 할 수 있습니다 :

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

... 또는 다음과 같이 추격을 자릅니다.

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

k, 고맙습니다. 프로세스에 sheet1을 어떻게 포함시킬 수 있습니까? 내 단계는 다음과 같습니다 arcpy.MakeXYEventLayer_management (input_table, lat, long, layername, SpatialRef). 해당 sheet1을 input_table에 포함시켜야합니다. 제가 어떻게하면?
Satya Chandra

내 편집 내용을 참조하십시오. .xls 또는 xlsx를 작업 공간으로 취급 할 수 있습니다.
MappaGnosis

6
XLS 스프레드 시트에서 파일이 아니라 실제로 ArcGIS의 WORKSPACE로 간주된다는 점을 지적하면 +1입니다. XLS 파일 내의 "시트"는 지오 데이터베이스 내의 "테이블"과 유사한 것으로 간주 될 수 있습니다.
RyanKDalton

형식 xls=r"E:\123.xls\Sheet1$"을 사용하여 상당히 피할 수 없다는 것을 발견 했습니다. 때로는 작동하지만 때로는 작동하지 않습니다. "에).
Cindy Jayakumar

6

ArcGIS for Desktop 버전은 언급하지 않지만 10.2 이상인 경우 다음과 같은 Excel To Table 도구 를 사용할 수 있습니다 .

Microsoft Office Excel 파일을 테이블로 변환합니다.

구문은 다음과 같습니다.

ExcelToTable_conversion (Input_Excel_File, Output_Table, {Sheet})
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.