XLSWRITE - into same folder location as M file

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.

 채택된 답변

Vineet Guru
Vineet Guru 2013년 6월 6일

0 개 추천

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

If you just want the directory, then uigetdir() would be more appropriate.
Iain
Iain 2013년 6월 6일
If you know the name of the files, you could use "which" to do it automatically as well.

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

Azzi Abdelmalek
Azzi Abdelmalek 2013년 6월 6일

1 개 추천

You should specify the folder when using xlswrite
xlswrite('yourolder/yourfile.xls',data)

댓글 수: 4

Hi Azzi, Thanks for your response. I did this previously but I do not want to write this path everytime as these folder paths might change depending upon where the M file moves to. What I am looking for is some global instruction which automatically writes the XLS file to the same M file location, even though I do not know the full path.
Thanks.
Then use pwd to guet the current folder
yourfolder=pwd
xlswrite([ youfrolder '\yourfile.xls'],data)
The pwd instruction points to C:\windows\system32, which is not where my M file is.
Azzi Abdelmalek
Azzi Abdelmalek 2013년 6월 6일
편집: Azzi Abdelmalek 2013년 6월 6일
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

댓글을 달려면 로그인하십시오.

Iain
Iain 2013년 6월 6일
편집: Iain 2013년 6월 6일

1 개 추천

[p f] = fileparts(mfilename('fullpath'));
xlswrite([p '\excel filename.xls'], ...)

댓글 수: 3

Hi Iain,
Thanks for your reply.
However, is there a Matlab instruction that automatically grabs the pathlink used in
[p f] = fileparts('pathlink+mfilename');
The pwd instruction I used points me to C:\windows\system32
while my M file is store in:
e:\matlab\ure01\unsupervised.m
I would like to grab this (e:\matlab\ure01\unsupervised.m) automatiically without having to type in the path, which often is unknown or too long and tedious to type in everytime the M file location changes.
Iain
Iain 2013년 6월 6일
mfilename('fullpath') grabs the path, and the filename of the m file (but not the .m bit)
Jan
Jan 2013년 6월 6일
편집: Image Analyst 2013년 6월 6일
fullfile(p, 'excel filename.xlsx') considers potentially existing trailing and OS depending file separators automatically.

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 App Building에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by