MATLAB engine, xlsread, compatibility issues

I wrote an executable in C++ that uses the MATLAB engine to use the function xlsread to read a .xlsm file. It works perfectly on my computer, I am using Windows 7 and have MATLAB version R2012a however, I am trying to put it on a file server (Windows Server 2008 R2 Service Pack 1) and has MATLAB version R2013a. However, when I put it on the server the executable does not work correctly. Does anyone know why this might be happening?
Any feedback that anyone could provide would be extremely helpful.
Thanks!

8 comentarios

Walter Roberson
Walter Roberson el 18 de Ag. de 2013
Does the file server have excel installed ?
Caroline
Caroline el 18 de Ag. de 2013
No, but I'm not sure if thats the issue because it still is able to read some of the excel file, just not all of it. I am reading two different sheets in the excel file. If the two sheets that are being read in the excel file are next to eachother in excel file then the executable seems to work fine, but if they are separated by a sheet or two then the executable does not work.
Image Analyst
Image Analyst el 18 de Ag. de 2013
xlsread() won't work at all if Excel is not installed so because it works somewhat, you must have it installed.
Walter Roberson
Walter Roberson el 19 de Ag. de 2013
xlsread() would work in 'basic' mode if Excel is not installed.
Image Analyst
Image Analyst el 19 de Ag. de 2013
Editada: Image Analyst el 19 de Ag. de 2013
I'm not sure what that is. I know that most of my Excel code won't work on my home computer because I have only Excel "starter version" (i.e. free, not the "full" version) and that version won't work with my ActiveX code, which is how I do most of my Excel work because it's faster.
Caroline
Caroline el 21 de Ag. de 2013
It seems like that Excel was actually the problem. While it can read excel files without excel, I don't think that it can read complicated excel files without excel, that might be basic mode? But it seems to be working with it.
Thanks for your all of your help!
and click on the description of the 'basic' option
Flag to request reading in basic mode, which is the default for systems without Excel for Windows. In basic mode, xlsread:
Reads XLS, XLSX, XLSM, XLTX, and XLTM files only.
Does not support an xlRange input when reading XLS files. In this case, use '' in place of xlRange.
Does not support function handle inputs.
Imports all dates as Excel serial date numbers. Excel serial date numbers use a different reference date than MATLAB® date numbers.
Caroline
Caroline el 22 de Ag. de 2013
Thank you!

Iniciar sesión para comentar.

Respuestas (1)

Image Analyst
Image Analyst el 18 de Ag. de 2013

0 votos

Did you also install the R2012a Runtime Component library on the server? It needs to have the same MCR on it that you used to compile your MATLAB module.

3 comentarios

Image Analyst
Image Analyst el 18 de Ag. de 2013
Did you compile a MATLAB module, or are you using MATLAB as an ActiveX server?
Caroline
Caroline el 18 de Ag. de 2013
Editada: Caroline el 18 de Ag. de 2013
Thanks so much for answering me! I installed a complete version of MATLAB (R2013a) on the file server. Do I also need the MCR? I thought I wouldn't need that if I had a fully installed version of MATLAB. The executable runs, it just does not run the way that it should. I used visual C++ to make the executable. I didn't use ActiveX in my code. The only things I used to communicate with MATLAB in my code was the MATLAB engine functions (engPutVariable(), engEvalString(), engGetVariable(), etc.)
Image Analyst
Image Analyst el 18 de Ag. de 2013
I'm not familiar with "the MATLAB engine". If you compiled some MATLAB code on your computer, then to access/run it on another computer, you'll need to install the MCR on that computer. If your code is talking to the full blown MATLAB development environment where MATLAB is acting as an ActiveX server, then you don't need to install the MCR.

Iniciar sesión para comentar.

Categorías

Más información sobre Introduction to Installation and Licensing en Centro de ayuda y File Exchange.

Productos

Preguntada:

el 18 de Ag. de 2013

Community Treasure Hunt

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

Start Hunting!

Translated by