# Matlab to Excel

1. Jul 20, 2017

### joshmccraney

Hi PF!

I am trying to copy info from MATLAB to Excel via the following code
Code (Matlab M):

filename = 'testdata.xlsx';
A = [12.7 5.02 -98 63.9 0 -.2 56];
xlswrite(filename,A)

but I receive the following warning:
Warning: Could not start Excel server for export.
XLSWRITE will attempt to write file in CSV format.

Whatever though, it still creates a file testdata.csv with the matrix $A$ in the first sheet beginning at cell A1. However, I want to be able to put data in different sheets and at different positions, so I used the following code
Code (Matlab M):

filename = 'testdata.xlsx';
A = {12,98; 13,99; 14,97};
sheet = 2;
xlRange = 'E1';
xlswrite(filename,A,sheet,xlRange)

which should store $A$ in sheet 2 beginning at position E1. But when I try to run this I get the following the same warning and matrix $A$ is on the sheet titled "testdata" beginning at position A1. Any ideas how to store multiple pieces of data on different sheets at different beginning cells?

2. Jul 20, 2017

### scottdave

3. Jul 20, 2017

### joshmccraney

4. Jul 20, 2017

### scottdave

It's been awhile since I have been hands-on with Matlab. We only had text file output, back then. Does the Excel file need to already exist (and have multiple sheets created) for it to work?

5. Jul 20, 2017

### joshmccraney

The code I was using creates its own .csv file. Within that I tried to create new sheets but I think since it is a .csv file it won't allow me to save any additional sheet other than the sheet it creates. Sooooo I'm not sure how to proceed.

6. Jul 20, 2017

### scottdave

7. Jul 21, 2017

### Staff: Mentor

8. Jul 21, 2017

### DrGreg

As far as I can tell, this may mean that Excel is not installed on your computer, or that your computer is a Mac.

9. Jul 21, 2017

### scottdave

This makes sense. I have a similar issue on my computer that I use for Quickbooks. I used to have OpenOffice on that machine, rather than Excel. When I wanted to export a report to Excel, it would not let me do it, because Excel was not installed on that machine. I could export to a CSV, though. Once I installed Microsoft Excel on that machine, the feature was available (even though OpenOffice Calc can read and write Excel spreadsheets).

10. Jul 21, 2017

### DrGreg

My guess is that MATLAB can't directly read or write Excel spreadsheets, which are in Microsoft's proprietary format, but it can interface to Excel software (if installed) and get Excel to do the reading and writing.

11. Jul 21, 2017

### scottdave

Just a thought, maybe it could be capable of doing the older style .XLS format, but not the newer .XLSX format.

12. Jul 21, 2017

### DrGreg

I would imagine that would depend on which version of Excel is installed.

13. Jul 21, 2017

### FactChecker

CSV files don't have a concept of "sheets". They are just plain flat ASCII files. Check if your computer has a good EXCEL by double clicking on the CSV file and see if it opens in EXCEL. MATLAB is trying to open EXCEL and insert data in different sheets. If EXCEL is running, maybe your version of MATLAB is not compatible with your version of EXCEL. Then you will have to install compatible versions.

PS. Also make sure that you don't already have that EXCEL file open in EXCEL. If so, close it and try running the MATLAB program again. But I'm sure that problem would give a different error message.

14. Jul 21, 2017

### scottdave

Yes that is how MATLAB works, according to this help topic. https://www.mathworks.com/help/matlab/import_export/exporting-to-excel-spreadsheets.html

So if 2007 or later is present, then you can write .XLSX, otherwise it is .XLS; if Excel for Windows is not installed, then it will only write .CSV files.

15. Jul 24, 2017

### joshmccraney

Wow lot's of good info here, thanks! To answer a few questions: yes, I have Excel downloaded on my machine but I am using a Mac. It sounds like that may be the issue? Also, when I double click the .CSV file Excel opens it.

16. Jul 24, 2017

### scottdave

From the way I understood the information, it only works under Windows. I would think that with OpenOffice having filters to read and write Excel spreadsheets, that there would be some open source approach, for people who do not have Microsoft Excel (Windows version).
If you are not trying to create a bunch of sheets in the worksheet, perhaps you could create just multiple .CSV files, then open them in Excel and arrange into one big worksheet there?

17. Jul 24, 2017

### joshmccraney

Yea this isn't a bad idea except that I can only seem to copy one matrix per .CSV file; since I can't put matrices where I want (always in Cell A1) all data gets overwrote.

18. Jul 24, 2017

### FactChecker

Are you opening the file in "append" mode? That should allow you to write several things in order.
See https://www.mathworks.com/examples/...99-append-to-or-overwrite-existing-text-files

Perhaps you can put a sheet name in the first column of the CSV file rows and sort or filter in EXCEL.

19. Jul 25, 2017

### joshmccraney

I did try this but am still having issues. It's not a huge deal though, for now I can copy/paste into excel. I do have windows machines that I can transfer data to if I really need to. Thanks for all your help though!