Don't put the ticks every day; that's the cause for there being that many--you did it to yourself! :)
The bar() command will put ticks at convenient places automagically, if you don't like those you can then put them where want.
Use xticklabel to write something besides the tick value.
If you would convert to use datetime, you could get the day string for free...
ADDENDUM:
Sorry, got sidetracked and didn't get back when thought would/could...
It's relatively simple to use dates for the x axis and then the datetime ruler object gives you a lot of flexibility for dates --I'll also demonstrate the new(ish) MATLAB table object in lieu of the old xlsread route...
tEnersol=readtable('enerosolar.xlsx','Sheet','EneDic');
tEnersol.Properties.VariableNames={'Rad','Dia'};
yr=2014;
tEnersol.Date=datetime(yr,1,tEnersol.Dia);
hB=bar(tEnersol.Date,tEnersol.Rad);
hAx=gca;
xlim([datetime(2014,1,1) datetime(2015,1,1)])
hAx.XAxis.TickLabelFormat='eee';
produced
which you'll note doesn't have the same shape as yours as it is plotted using the actual date in the data file on the x axis, not against ordinal position in the file (which is not ordered by date). This will show up if change the time format on the x-axis to 'MMM'
which illustrates the data must be from somewhere in the northern hemisphere.