Solving MATLAB to Excel Copy Issues

  • Context: MATLAB 
  • Thread starter Thread starter member 428835
  • Start date Start date
  • Tags Tags
    Excel Issues Matlab
Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
18 replies · 7K views
member 428835
Hi PF!

I am trying to copy info from MATLAB to Excel via the following code
Matlab:
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
Matlab:
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?

Thanks for your time!
 
on Phys.org
scottdave said:
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?
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.
 
joshmccraney said:
but I receive the following warning:
Warning: Could not start Excel server for export.
XLSWRITE will attempt to write file in CSV format.
As far as I can tell, this may mean that Excel is not installed on your computer, or that your computer is a Mac.
 
  • Like
Likes   Reactions: scottdave
DrGreg said:
As far as I can tell, this may mean that Excel is not installed on your computer, or that your computer is a Mac.
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).
 
scottdave said:
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).
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.
 
  • Like
Likes   Reactions: scottdave
scottdave said:
Just a thought, maybe it could be capable of doing the older style .XLS format, but not the newer .XLSX format.
I would imagine that would depend on which version of Excel is installed.
 
joshmccraney said:
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.
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.
 
  • Like
Likes   Reactions: jim mcnamara
DrGreg said:
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.
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.
 
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.
 
joshmccraney said:
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.
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?
 
scottdave said:
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?
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.
 
joshmccraney said:
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.
Are you opening the file in "append" mode? That should allow you to write several things in order.
See https://www.mathworks.com/examples/matlab/mw/matlab-ex30745299-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.
 
FactChecker said:
Are you opening the file in "append" mode? That should allow you to write several things in order.
See https://www.mathworks.com/examples/matlab/mw/matlab-ex30745299-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.
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!