2012-04-14 21 views
5

एक्सेल फ़ाइल में लिखित पंक्तियों की संख्या प्राप्त करने के लिए Matlab का एक आदेश है? सबसे पहले, मैं पहली पंक्ति भरता हूं। और फिर मैं एक्सेल फ़ाइल में एक और पंक्ति जोड़ना चाहता हूं। enter image description hereएक्सेल फ़ाइल में पंक्तियों की Matlab संख्या

मैंने कोशिश की: तो यह मेरी एक्सेल फ़ाइल है

e = actxserver ('Excel.Application'); 
filename = fullfile(pwd,'example2.xlsx'); 
ewb = e.Workbooks.Open(filename); 
esh = ewb.ActiveSheet; 

sheetObj = e.Worksheets.get('Item', 'Sheet1'); 
num_rows = sheetObj.Range('A1').End('xlDown').Row 

लेकिन NUM_ROWS = 1048576, 1. के बजाय कृपया मदद, धन्यवाद!

+0

क्या आपकी फ़ाइल वास्तव में खाली है? कभी-कभी आप एक्सेल में रिक्त कक्ष बना सकते हैं और आप यह सुनिश्चित नहीं कर सकते कि वे वहां नहीं हैं। क्या होता है यह देखने के लिए एक नई फ़ाइल बनाएं और इसके साथ कोड का परीक्षण करें। – Castilho

+0

@Castilho मैंने आपके द्वारा सुझाए गए प्रयासों की कोशिश की, लेकिन num_rows अभी भी 1048576 के बराबर है। धन्यवाद। –

उत्तर

4

यदि फ़ाइल खाली है, या केवल एक पंक्ति में डेटा है, तो .End('xlDown').Row; शीट के बहुत नीचे तक जाएगा (1048576 एक्सेल 2007+ शीट में पंक्तियों की संख्या है)।

परीक्षण करें यदि सेल A2 पहले खाली है, और 0 लौटाएं तो यह वापस है।

या चादर के नीचे से Up का उपयोग

num_rows = sheetObj.Cells(sheetObj.Rows.Count, 1).End('xlUp').Row 

नोट: मैं Matlab वाक्य रचना के बारे में सुनिश्चित नहीं हूँ, इसलिए इसमें कुछ

+0

धन्यवाद, लेकिन यह काम नहीं करता है, मैंने अपना विषय अपडेट किया है .. –

+0

केवल एक पंक्ति डेटा के समान व्यवहार करती है (यह देखने के लिए एक्सेल में 'Ctrl-Down'' आज़माएं) मेरा संपादन देखें –

+0

आपको बहुत धन्यवाद! ! :]] –

1

आप MATLAB के xlsread समारोह का उपयोग कर सकते पढ़ने के लिए एडजस्ट करने की आवश्यकता हो सकती स्प्रेडशीट में।

[rows columns] = size(strings); 

इस परीक्षण, मैं rows = 1, columns = 10 मिला (यह मानते हुए और कुछ नहीं:

[numbers strings misc] = xlsread('myfile.xlsx'); 

अगर आप strings या misc पर एक size जांच करते हैं, यह आप निम्नलिखित देना चाहिए: यह निम्नलिखित क्षेत्रों प्राप्त स्प्रेडशीट में 'ए' से परे था)।

संबंधित मुद्दे