XLSWRITE - into same folder location as M file

3 vues (au cours des 30 derniers jours)
Vineet Guru
Vineet Guru le 6 Juin 2013
I want to store my M files on a USB stick for protability. Some of these M files create xlsx files as an output. I would like to store these in the same folder location as the M file which creates them. I used the usual xlswrite ('filename.xlsx', variable); but get an error:
Error using xlswrite (line 220)
Invoke Error, Dispatch Exception:
Source: Microsoft Excel Description: Microsoft Excel cannot access the file 'C:\WINDOWS\system32\38C41000'. There are several possible reasons:
• The file name or path does not exist.
• The file is being used by another program.
• The workbook you are trying to save has the same name as a currently open workbook.
Many thanks.

Réponse acceptée

Vineet Guru
Vineet Guru le 6 Juin 2013
Thanks guys for your attempts. Your help is most appreciated.
I eventually stumbled upon the "uigetfile" instruction as with just a one click on the m file of interest in a folder, and the uigetfile picks up the folder + filename. I then stripped the filename and retained the folder.
  2 commentaires
Walter Roberson
Walter Roberson le 6 Juin 2013
If you just want the directory, then uigetdir() would be more appropriate.
Iain
Iain le 6 Juin 2013
If you know the name of the files, you could use "which" to do it automatically as well.

Connectez-vous pour commenter.

Plus de réponses (2)

Azzi Abdelmalek
Azzi Abdelmalek le 6 Juin 2013
You should specify the folder when using xlswrite
xlswrite('yourolder/yourfile.xls',data)
  4 commentaires
Vineet Guru
Vineet Guru le 6 Juin 2013
The pwd instruction points to C:\windows\system32, which is not where my M file is.
Azzi Abdelmalek
Azzi Abdelmalek le 6 Juin 2013
Modifié(e) : Azzi Abdelmalek le 6 Juin 2013
How are you running your m-file? your m-files, are not in the current folder? And I am not getting what the aim of what you are looking for

Connectez-vous pour commenter.


Iain
Iain le 6 Juin 2013
Modifié(e) : Iain le 6 Juin 2013
[p f] = fileparts(mfilename('fullpath'));
xlswrite([p '\excel filename.xls'], ...)
  3 commentaires
Iain
Iain le 6 Juin 2013
mfilename('fullpath') grabs the path, and the filename of the m file (but not the .m bit)
Jan
Jan le 6 Juin 2013
Modifié(e) : Image Analyst le 6 Juin 2013
fullfile(p, 'excel filename.xlsx') considers potentially existing trailing and OS depending file separators automatically.

Connectez-vous pour commenter.

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by