一次读取excel文件一行matlab

时间:2017-01-30 14:59:46

标签: excel matlab optimization

我有一个很大的excel文件,我试图一次读一行。为此,我使用excel COM对象并编写

excelApp = actxserver('Excel.Application');
W = excellApp.workbooks.Open(f);
Sheet = W.Sheets.Item('1');

现在我常常做Sheet.usedRange.value2之类的事情来获取该特定工作表中的所有值。但现在我想一次读一行;我怎样才能做到这一点?

查看xlsread的代码我看到他们通过调用Range函数来做到这一点,但我无法在任何地方找到它。

1 个答案:

答案 0 :(得分:0)

在纯VBA中(Sheet是受保护的关键字除外),它看起来像这样:

LastRow = Sheet.Range("A" & Sheet.Rows.Count).End(xlUp).Row

For i = 1 To LastRow
    Sheet.Range(Sheet.Cells(i, 1),Sheet.Cells(i,10)).Value2
Next i

所以在Matlab中,它可能是这样的:

excelApp = actxserver('Excel.Application');
W = excellApp.workbooks.Open(f);
Sheet = W.Sheets.Item('1');
LastRow = Sheet.Range("A" & Sheet.Rows.Count).End(xlUp).Row;

For i = 1:LastRow
    Sheet.Range(Sheet.Cells(i, 1),Sheet.Cells(i,10)).Value2;
end