How can I get data from an open Excel file without knowing the file name?

I have an unsaved .xlsx file open from another script, and I'm trying to write a Matlab program to extract the data from the file. There is no filename or path, however I am able to access the Active Workbook and corresponding Sheet by using ActiveX. It possible for me to pull the file data from the Workbook or Sheet object?
Here is how I get the workbook and sheet:
ex = actxGetRunningServer('Excel.Application');
book = ex.ActiveWorkbook;
sheet = book.Worksheets.Item(1);

Answers (1)

You can add two additional lines to your code as follows:
ex = actxGetRunningServer('Excel.Application');
book = ex.ActiveWorkbook;
sheet = book.Worksheets.Item(1);
% Below command will read cells A1-B4
cells = sheet.get('Range','A1','B4'); %Specify the range of cells you want to read from the Excel File
data = cells.Value; %'data' will be a cell array containing the excel cell values

3 Comments

Thank you for your response. I realized my question was not very clear, I apologize. I actually want to save the open workbook in a .xlsx file, not just save the data in Matlab. Do you know if this is possible?
Also, is there a way to get the entire spreadsheet - not just a range - with the '.get' method?
Thanks again.
To save the workbook, you can add the following line to the code:
SaveAs(book,'myfile.xls')
And what if i use the dinamic range notation?
cells = sheet.get('Range','A1#','B4#')

Sign in to comment.

Asked:

on 20 Jul 2017

Commented:

on 7 Jun 2022

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!