आर्कपी स्क्रिप्ट में एक्सेल शीट पढ़ना?


12

मैं एक्स, वाई बिंदुओं को एक्सेल में शेपफाइल में बदलने के लिए एक पायथन कोड लिख रहा हूं। इस प्रक्रिया में मेरे पास shhet1 से xy पॉइंट्स हैं। एक्सेल वर्क बुक (97-2003) के शीट 1 से डेटा पढ़ने के लिए मुझे अपनी प्रक्रिया में शामिल करने के लिए क्या कदम उठाना होगा।
मैंने एक कोड इस प्रकार लिखा है ..

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

लेकिन इसका काम नहीं हो रहा है।


प्रयास करें r "ई:: \" या "/ ई"
हारून

फिर मैंने पहले ही कोशिश की।
सत्य चंद्र

आयात xlrd काम नहीं कर रहा है। त्रुटि के रूप में xlrd नाम का कोई मॉड्यूल नहीं है।
सत्य चंद्र

मैं Openpyxl को आर्कफी के साथ संयोजन में एक्सेल शीट को पढ़ने और हेरफेर करने के लिए बहुत उपयोगी मानता हूं।
सिंडी जयकुमार

जवाबों:


28

यह काम नहीं करता है क्योंकि आपने एक्सेल स्प्रेडशीट को पढ़ने के लिए Xlrd मॉड्यूल नहीं कहा है। इसे कुछ इस तरह से लागू करें:

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

यह आपको पायथन के साथ एक्सएलएस फ़ाइल पढ़ने की अनुमति देगा। हालांकि, आर्कपी एक्सएलआर के बिना एक्सएलएस पढ़ेगा। आप एक्सेल वर्कबुक को एक कार्यक्षेत्र मान सकते हैं जिसमें संभावित रूप से कई टेबल (कार्यपत्रक) होते हैं। तो आप कुछ ऐसा कर सकते हैं:

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

... या पीछा करने के लिए कटौती:

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

k, धन्यवाद तो हम कैसे मैं प्रक्रिया में शामिल कर सकते हैं। मेरा कदम इस प्रकार है, जैसे कि arcpy.MakeXYEventLayer_management (input_table, lat, long, layername, SpatialRef)। मुझे उस शीट 1 को input_table में शामिल करना है। मै कैसे?
सत्य चंद्र

मेरे संपादन देखें - आप एक .xls या xlsx को कार्यक्षेत्र के रूप में मान सकते हैं।
MappaGnosis

6
एक एक्सएलएस स्प्रेडशीट को वास्तव में एक फ़ाइल के बजाय आर्कगिस में एक कार्यशाला माना जाता है, यह इंगित करने के लिए +1। एक XLS फ़ाइल के भीतर एक "शीट" को जियोडेटाबेस के भीतर एक "तालिका" के अनुरूप माना जा सकता है।
रयान केडाल्टन

मैंने पाया है कि इस प्रारूप का उपयोग xls=r"E:\123.xls\Sheet1$"काफी डोडी है - कभी-कभी यह काम करता है, कभी-कभी यह नहीं होता है (मैंने इसे एक ही कार्यपुस्तिका की दो प्रतियों पर आज़माया है - यह दूसरे के लिए काम करता है, स्क्रिप्ट के साथ दुर्घटनाग्रस्त हो गया) मौजूद नहीं है " दूसरे पर)।
सिंडी जयकुमार

6

आप अपने डेस्कटॉप संस्करण के लिए आर्कजीआईएस का उल्लेख नहीं करते हैं, लेकिन अगर यह 10.2 (या बाद में) है तो आपको एक्सेल टू टेबल टूल का उपयोग करने में सक्षम होना चाहिए :

Microsoft Office Excel फ़ाइलों को तालिका में रूपांतरित करता है।

इसका सिंटैक्स है:

ExcelToTable_conversion (Input_Excel_File, Output_Table, {Sheet})
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.