2012-04-14 44 views
5

có lệnh nào của Matlab để lấy số hàng được ghi trong tệp excel không? trước tiên, tôi điền vào hàng đầu tiên. và sau đó tôi muốn thêm một hàng khác trong tệp excel. vì vậy đây là file excel của tôi: enter image description hereSố lượng hàng MATLAB trong tập tin excel

tôi đã cố gắng:

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 

Nhưng NUM_ROWS = 1048576, thay vì 1. xin vui lòng giúp đỡ, cảm ơn bạn!

+0

Tệp của bạn có thực sự trống không? Đôi khi bạn có thể tạo các ô trống trong excel và bạn không thể biết chắc chắn chúng không có ở đó. Tạo một tệp mới và kiểm tra mã với nó để xem điều gì xảy ra. – Castilho

+0

@Castilho Tôi đã thử những gì bạn đề xuất, nhưng num_rows vẫn bằng 1048576. cảm ơn bạn. –

Trả lời

4

Nếu tập tin là trống rỗng, hoặc chứa dữ liệu chỉ trong một hàng, sau đó .End('xlDown').Row; sẽ di chuyển đến dưới cùng của bảng (1048576 là số lượng hàng trong một bảng tính Excel 2007+).

Kiểm tra xem ô A2 có trống không trước và trả lại 0 nếu có.

Hoặc sử dụng Up từ đáy của tấm

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

Lưu ý: Tôi không chắc chắn của các cú pháp Matlab, vì vậy điều này có thể cần một số điều chỉnh

+0

cảm ơn bạn nhưng nó không hoạt động, tôi cập nhật chủ đề của mình .. –

+0

Chỉ có một hàng hoạt động giống như không có dữ liệu (thử 'Ctrl-Down' để biết cách hoạt động) Xem chỉnh sửa của tôi –

+0

cảm ơn bạn rất nhiều! ! :]] –

1

Bạn có thể sử dụng xlsread chức năng MATLAB để đọc trong bảng tính. Đây có được các lĩnh vực sau:

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

nếu bạn làm một tấm séc size trên strings hoặc misc, điều này sẽ cung cấp cho bạn như sau: không có gì

[rows columns] = size(strings); 

thử nghiệm này, tôi đã rows = 1, columns = 10 (giả định khác đã vượt quá 'A' trong bảng tính).

Các vấn đề liên quan