MATLAB Answers

ccc7
0

how can i export a numeric vector that starts from 0 eg. 0001 from matlab to excel?

Asked by ccc7
on 11 Feb 2019
Latest activity Commented on by Jeremy Hughes on 11 Feb 2019
how can i export a numeric vector that starts from 0 eg. 0001 from matlab to excel?

  1 Comment

illustrate with an explicit example

Sign in to comment.

6 Answers

Answer by Jeremy Hughes on 11 Feb 2019

What's happening when you pass "0001" into a spreadsheet is the same thing that would happen if you typed that number into the spreadsheet from the Excel application. It converts the internal storage to "number". If you want to preserve exact text, add a single quote mark before the text, e.g. "'0001". (or {'''0001'} for cells.) This is the same thing you'd need to do if you tried tying the number into the Excel application to preserve the leading zeros.
This only happens on Windows when communicating with an active Excel process. If you're in the most recent release, you can also use the "UseExcel",false parameter, which won't do any post processing to the text; it is stored as-is. If you do, however, opening the file in Excel and re-saving might modify the contents.

  1 Comment

So I am using a Mac but the OP maybe using windows which may be the effect of this you say?

Sign in to comment.


Answer by madhan ravi
on 11 Feb 2019

Use xlswrite() or writetable().

  2 Comments

Charalambos Charalambous's answer moved here:
Hi Madhan
I do use xlswrite. The goal here is to add subject's id number (eg. 0001) in the fisrt collumn of each tab.
the code that i am using is
subjectid = cellfun(@num2str,{'0001'},'un',0)
xlswrite('temp.xlsx',subjectid)
But as you can see in the attached file, the exported value is '1'.
It would be great if i am able to export this value as '0001' from matlab to excel.
Any help would be very appreciated.
Try the below:
a={'0001'}
writetable(table(a),'xxx.xlsx')

Sign in to comment.


Answer by ccc7
on 11 Feb 2019

Hi,
Thank you for the code; however, stil the same issue. It seems that excel does accept 0s before a number. Is this true?

  1 Comment

What do you mean? Did‘nt my comment do what you asked for ?

Sign in to comment.


Answer by ccc7
on 11 Feb 2019

unfortunately no. see attached file. A2 cell = '1'

  1 Comment

I haven‘t checked the excel file but the data is preserved. Try
readtable('xxx.xlsx')

Sign in to comment.


Answer by ccc7
on 11 Feb 2019

what version do you use? I am using 2017b. Still does not work.
readtable.PNG

  3 Comments

I use 2018b:
>> a={'0001'}
a =
1×1 cell array
{'0001'}
>> writetable(table(a),'xxx.xlsx')
>> readtable('xxx.xlsx')
ans =
table
a
______
'0001'
>>

Sign in to comment.


Answer by ccc7
on 11 Feb 2019

hi all,
i am using pc. I tried Jeremy's suggestion (i.e., {'''0001'} ) and works fine!!!!
You have saved me from a lengthy manual work. now it is automated.
Thank you both.

  1 Comment

Sign in to comment.