Đọc bảng Excel trong tập lệnh ArcPy?


12

Tôi đang viết mã python để chuyển đổi các điểm X, Y trong excel thành shapefile. Trong quá trình này, tôi có các điểm xy từ shhet1. Bước tôi phải đưa vào trong quy trình của mình để đọc dữ liệu từ trang1 của một cuốn sách công việc excel (97-2003).
Tôi đã viết một mã như sau ..

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

Nhưng nó không hoạt động.


Hãy thử r "E: \" hoặc "E: /"
Aaron

ya tôi đã thử rồi
Satya Chandra

nhập xlrd không hoạt động. Các lỗi như sau không có mô-đun có tên xlrd.
Satya Chandra

Tôi đã thấy openpyxl rất hữu ích để đọc và thao tác với các trang tính Excel kết hợp với arcpy.
Cindy Jayakumar

Câu trả lời:


28

Nó không hoạt động vì bạn chưa gọi các mô-đun Xlrd để đọc bảng tính Excel. Thực hiện nó một cái gì đó như thế này:

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

Điều này sẽ cho phép bạn đọc tệp XLS bằng Python. Tuy nhiên, ArcPy sẽ đọc XLS mà không cần Xlrd. Bạn có thể coi sổ làm việc Excel là không gian làm việc có khả năng chứa nhiều bảng (bảng tính). Vì vậy, bạn có thể làm một cái gì đó như:

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

... hoặc cắt để đuổi theo:

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

k, cảm ơn sau đó làm thế nào chúng ta có thể bao gồm sheet1 trong quá trình. Bước của tôi là theo arcpy.MakeXYEventLayer_man Quản lý (input_table, lat, long, layername, SpatialRef). Tôi phải đưa sheet1 đó vào input_table. Làm thế nào tôi có thể?
Satya Chandra

Xem các chỉnh sửa của tôi - bạn có thể coi .xls hoặc xlsx là không gian làm việc.
MappaGnosis

6
+1 để chỉ ra rằng một bảng tính XLS mà nó thực sự coi là một WORKSPACE trong ArcGIS, chứ không phải là một tệp. Một "bảng" trong tệp XLS có thể được coi là tương tự như "bảng" trong cơ sở dữ liệu địa lý.
RyanKDalton

Tôi đã tìm thấy việc sử dụng định dạng xls=r"E:\123.xls\Sheet1$"khá tinh ranh - đôi khi nó hoạt động, đôi khi không (tôi đã thử nó trên hai bản sao của cùng một sổ làm việc - nó hoạt động cho một bản khác, tập lệnh bị lỗi "không tồn tại " mặt khác).
Cindy Jayakumar

6

Bạn không đề cập đến phiên bản ArcGIS for Desktop của mình, nhưng nếu là 10.2 (hoặc mới hơn) thì bạn có thể sử dụng công cụ Excel To Table :

Chuyển đổi các tệp Microsoft Office Excel thành một bảng.

Cú pháp của nó là:

ExcelToTable_conversion (Input_Excel_File, Output_Table, {Sheet})
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.