Чтение листа Excel в скрипте ArcPy?

12

Я пишу код Python для преобразования X, Y точек в Excel в шейп-файл. В этом процессе я должен прочитать xy баллы из shhet1. Какой шаг я должен включить в свой процесс, чтобы прочитать данные из листа 1 рабочей книги Excel (97-2003).
Я написал код следующим образом ..

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

Но это не работает.

Сатья Чандра
источник
Попробуйте r "E: \" или "E: /"
Аарон
Я уже пробовал.
Сатья Чандра
импорт xlrd не работает. Ошибка следующая: нет модуля с именем xlrd.
Сатья Чандра
Я обнаружил, что openpyxl очень полезен для чтения и манипулирования листами Excel вместе с arcpy.
Синди Джаякумар

Ответы:

28

Это не работает, потому что вы не вызвали модули Xlrd для чтения электронных таблиц Excel. Реализуйте это примерно так:

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

Это позволит вам прочитать файл XLS с Python. Однако ArcPy будет читать XLS без Xlrd. Вы можете рассматривать рабочую книгу Excel как рабочую область, содержащую потенциально много таблиц (рабочих таблиц). Так что вы можете сделать что-то вроде:

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

... или переходить в погоню с помощью:

arcpy.MakeXYEventLayer_management(r'E:\123.xls\Sheet1$',lat,long,layername,SpatialRef)
MappaGnosis
источник
k, спасибо, тогда как мы можем включить sheet1 в процесс. Мой шаг следующий: arcpy.MakeXYEventLayer_management (input_table, lat, long, layername, SpatialRef). Я должен включить этот лист1 в input_table. Как я могу?
Сатья Чандра
Смотрите мои правки - вы можете рассматривать .xls или xlsx как рабочее пространство.
MappaGnosis
6
+1 за указание на то, что электронную таблицу XLS она на самом деле считала РАБОЧЕЙ ПРОБЛЕЙ в ArcGIS, а не файл. «Лист» в файле XLS можно считать аналогичным «таблице» в базе геоданных.
RyanKDalton
Я обнаружил, что использование формата xls=r"E:\123.xls\Sheet1$"довольно хитроумно - иногда он работает, иногда нет (я пробовал его на двух экземплярах одной и той же книги - он работал на другой, сценарий сбой с «не существует» " с другой).
Синди Джаякумар
6

Вы не упоминаете свою версию ArcGIS for Desktop, но если она равна 10.2 (или более поздней), вы сможете использовать инструмент Excel To Table , который:

Преобразует файлы Microsoft Office Excel в таблицу.

Его синтаксис:

ExcelToTable_conversion (Input_Excel_File, Output_Table, {Sheet})
PolyGeo
источник