problem with xlswrite windows

2 visualizzazioni (ultimi 30 giorni)
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

Risposta accettata

Akihumi
Akihumi il 7 Mag 2020
Modificato: Akihumi il 7 Mag 2020
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 Commento
abdiel pantoja meneses
abdiel pantoja meneses il 7 Mag 2020
Modificato: abdiel pantoja meneses il 7 Mag 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

Accedi per commentare.

Più risposte (1)

Quad
Quad il 7 Mag 2020
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

Categorie

Scopri di più su Characters and Strings in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by