MATLAB Answers

How do I stop this xlswrite error message?

63 views (last 30 days)
Cg Gc
Cg Gc on 5 Apr 2019
Commented: Cg Gc on 9 Apr 2019
I am writing a series of values to an excel sheet to do some quick comparisons with other data. Each value is a single number. Ex. caseyJan1992 = 52.6
This is my code for one of them.
xlswrite('casey_Hourly_443610_tp.xlsx',caseyJan1992,'MonthlySums','b14');
It is basically putting a single value into a one cell of a spreadsheet called "MonthlySums'. There are a bunch of these values going into spread sheet.
When I first open up MATLAB and run the code, it works fine. But, if I let MATLAB stay open for a few minutes or try to run the script more than once, I get this error message.
Error using xlswrite (line 224)
Invoke Error, Dispatch Exception:
Source: Microsoft Excel
Description: This command is unavailable because the license to use
this application has expired.
Help File: xlmain11.chm
Help Context ID:
My fix is to simply save my work and restart MATLAB.
This fix works, but it isn't a permanent solution and it takes more time away from what I need to do. Does anyone know of a more permanent solution?

  7 Comments

Show 4 older comments
Walter Roberson
Walter Roberson on 5 Apr 2019
The bit about starting up Excel was as to whether Excel gave you a message about the license or if it just ran okay.
You can use array2table() to create a table object to pass to writetable()
If you have a new enough MATLAB, you could use writematrix() instead of array2table() and writetable()
Guillaume
Guillaume on 8 Apr 2019
As far as I understand writetable still use Excel by default (on Windows with Excel installed). It's only if you specify 'UseExcel', false that you don't need excel.
Walter Roberson
Walter Roberson on 8 Apr 2019
Good point about the (fairly new) UseExcel parameter.

Sign in to comment.

Answers (1)

Jan
Jan on 5 Apr 2019
It is not enough to think, that the license is active. Start Excel and check the license:

  8 Comments

Show 5 older comments
Guillaume
Guillaume on 9 Apr 2019
Oh, you certainly shouldn't get invalid ProgID! Get rid of the extra space after 'Application' and try again.
Jan
Jan on 9 Apr 2019
@Cg Gc: Although you do not care about Guillaume's advice to black the personal information on the screenshots, I've edited them now. Do not post personal details like email address or GUIDs of your accounts.
Thanks for posting the screenshots. Now it is at least clear, which Office version you are using. Maybe this helps to check the license then:
It is not clear, if this is a Matlab problem, because it seems to concern the Office license only. Does using the debugger to step line by line through the code of xlswrite reveal which test is actually failing?
Cg Gc
Cg Gc on 9 Apr 2019
This line worked, without the extra space. I have no idea what it did, but the expired license error message takes longer to appear. I can now create 2 or sometimes even 3 spreadsheets before it breaks. So, I guess that is a good thing.
excel = actxserver('Excel.Application');

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!

Translated by