กำลังอ่านแผ่นงาน Excel ในสคริปต์ ArcPy หรือไม่


12

ฉันกำลังเขียนรหัสหลามเพื่อแปลง X, Y คะแนนใน excel เป็น shapefile ในกระบวนการนี้ฉันมีคะแนน tyad 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: /"
แอรอน

ใช่ฉันพยายามแล้ว
Satya Chandra

นำเข้า xlrd ไม่ทำงาน ข้อผิดพลาดดังนี้ไม่มีโมดูลชื่อ xlrd
Satya Chandra

ฉันพบว่าopenpyxlมีประโยชน์มากเช่นกันสำหรับการอ่านและจัดการแผ่นงาน Excel ร่วมกับ arcpy
Cindy Jayakumar

คำตอบ:


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)

k ขอบคุณด้วยวิธีที่เราสามารถรวม sheet1 ในกระบวนการ ขั้นตอนของฉันเป็นดังนี้ arcpy.MakeXYEventLayer_management (input_table, lat, long, layername, SpatialRef) ฉันต้องรวม sheet1 นั้นเข้าไปใน input_table ฉันจะทำอย่างไร
Satya Chandra

ดูการแก้ไขของฉัน - คุณสามารถใช้. xls หรือ xlsx เป็นพื้นที่ทำงาน
MappaGnosis

6
+1 สำหรับการชี้ให้เห็นว่าสเปรดชีต XLS จริง ๆ แล้วถือว่าเป็น WORKSPACE ใน ArcGIS แทนที่จะเป็นไฟล์ "แผ่นงาน" ในไฟล์ XLS อาจพิจารณาคล้ายกับ "ตาราง" ภายในฐานข้อมูลภูมิศาสตร์
RyanKDalton

ฉันพบว่าใช้รูปแบบxls=r"E:\123.xls\Sheet1$"ที่จะหลบอย่างเป็นธรรม - บางครั้งก็ใช้งานได้บางครั้งก็ใช้ไม่ได้ (ฉันได้ลองในเวิร์กบุ๊กเล่มเดียวกันสองเล่ม - ใช้งานได้กับอีกอันสคริปต์หยุดทำงานด้วย "ไม่มีอยู่จริง "ที่อื่น ๆ )
Cindy Jayakumar

6

คุณไม่ได้พูดถึงรุ่น ArcGIS สำหรับเดสก์ท็อปของคุณ แต่ถ้าเป็น 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.