I have the following code in windows
Dat=[1 2 3]
direccion=uigetdir;
aux=[direccion,'Mediciones','_','%s.xlsx'];
Name=sprintf(aux,datestr(now));
xlswrite(Name,Dat,'Data','A1')
error using xlswrite

 Akzeptierte Antwort

Akihumi
Akihumi am 7 Mai 2020
Bearbeitet: Akihumi am 7 Mai 2020

0 Stimmen

I think the filename doesn't allow ':' if you use datestr(now)
Try using
sprintf('%02.0f',clock)
Besides, I would suggest using the following syntex for the filename:
Name=sprintf('%s%sMediciones_%s.xlsx', direccion, filesep, sprintf('%02.0f',clock));

1 Kommentar

abdiel pantoja meneses
abdiel pantoja meneses am 7 Mai 2020
Bearbeitet: abdiel pantoja meneses am 7 Mai 2020
Thank you
In this way I was able to achieve what I wanted to save the excel file and that its name was with the current date and time

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Quad
Quad am 7 Mai 2020

0 Stimmen

There are a few things that could cause this to go wrong.
1) Be sure that the name you are providing is a valid name for excel. I believe datestr(now) produces a string which has special characters that are not acceptable for the name of an excel file.
2) Make sure to test out uigetdir before using it. On a windows machine, uigetdir does not return a '\' at the end of the directory.
3) This one is a little tricky! I don't think it's actually your xlswrite that is the problem, I think it is your sprintf statement. Notice that the backslash character is a special character, and you need to use a double backslash for matlab to ignore it as a special character. Any time sprintf is called, it will treat a single backslash as a special character, and will reduce any double backslash to a single backslash. For example, you could try something like this:
Dat=[1 2 3]
direccion=uigetdir;
split = strsplit(direccion,'\');
direccion = sprintf('%s\\\\',split{:});
aux=[direccion,'Mediciones','_','%s.xlsx'];
Name=sprintf(aux,'1');
xlswrite(Name,Dat,'Data','A1')
I recommend you display the output from split, direccion, aux, and Name in order to see what is happening in the provided code. Notice I replaced datestr(now) with '1' because of the special characters in datestr

Kategorien

Mehr zu Characters and Strings finden Sie in Hilfe-Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by