Solving MATLAB to Excel Copy Issues

  • MATLAB
  • Thread starter joshmccraney
  • Start date
  • #1
joshmccraney
Gold Member
2,253
143
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!
 

Answers and Replies

  • #4
scottdave
Science Advisor
Homework Helper
Insights Author
Gold Member
1,891
880
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
joshmccraney
Gold Member
2,253
143
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.
 
  • #8
DrGreg
Science Advisor
Gold Member
2,438
1,701
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.
 
  • #9
scottdave
Science Advisor
Homework Helper
Insights Author
Gold Member
1,891
880
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).
 
  • #10
DrGreg
Science Advisor
Gold Member
2,438
1,701
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.
 
  • #11
scottdave
Science Advisor
Homework Helper
Insights Author
Gold Member
1,891
880
Just a thought, maybe it could be capable of doing the older style .XLS format, but not the newer .XLSX format.
 
  • #12
DrGreg
Science Advisor
Gold Member
2,438
1,701
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.
 
  • #13
FactChecker
Science Advisor
Homework Helper
Gold Member
7,735
3,399
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 jim mcnamara
  • #14
scottdave
Science Advisor
Homework Helper
Insights Author
Gold Member
1,891
880
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.
 
  • #15
joshmccraney
Gold Member
2,253
143
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
scottdave
Science Advisor
Homework Helper
Insights Author
Gold Member
1,891
880
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?
 
  • #17
joshmccraney
Gold Member
2,253
143
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.
 
  • #18
FactChecker
Science Advisor
Homework Helper
Gold Member
7,735
3,399
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.
 
  • #19
joshmccraney
Gold Member
2,253
143
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!
 

Suggested for: Solving MATLAB to Excel Copy Issues

  • Last Post
Replies
4
Views
339
  • Last Post
Replies
2
Views
702
Replies
3
Views
2K
Replies
1
Views
798
  • Last Post
Replies
6
Views
261
  • Last Post
Replies
1
Views
713
Replies
1
Views
509
  • Last Post
Replies
9
Views
1K
Replies
10
Views
1K
Replies
1
Views
486
Top