Hello, i have a matrix that i'm stocking it into an excel file and i'm trying to color a cell of my excel file, which function should i use please, i don't think that xlswrite allow me to do that ? thank you!!

4 comentarios

Rik
Rik el 17 de Jul. de 2018
You will probably need to look into ActiveX controls.
omar Benamiar Messari
omar Benamiar Messari el 17 de Jul. de 2018
Editada: omar Benamiar Messari el 17 de Jul. de 2018
i was locking into activix i tried some stuff but didn't work. can you give me any exemple of doing that this is what i have done
global matrix;
[filename, pathname] = uiputfile('*.xls', 'Choose a file name');
outname = fullfile(pathname, filename);
xlswrite(outname, matrix );
%[dec2base27(4),num2str(1) : dec2base27(4),num2str(1)]
%ActiviX to color excel cell
% Connect to Excel
Excel = actxserver('excel.application');
% Get Workbook object
WB = Excel.Workbooks.Open(outname);
% Set the color of cell "A1" of Sheet 1 to RGB
WB.Worksheets.Item(1).Range('A1').Interior.Color = hex2dec('00FF00');
% Save Workbook
WB.Save();
% Close Workbook
WB.Close();
% Quit Excel
Excel.Quit();
Dennis
Dennis el 17 de Jul. de 2018
do you always need to color the same cells or do they vary?
omar Benamiar Messari
omar Benamiar Messari el 17 de Jul. de 2018
Editada: omar Benamiar Messari el 17 de Jul. de 2018
they vary it's depend on their values.
but trying first to color just one and then i'll try to collor others . from a simple exemple (if it's work) i can move to complicate application

Iniciar sesión para comentar.

 Respuesta aceptada

Dennis
Dennis el 17 de Jul. de 2018
Editada: Dennis el 17 de Jul. de 2018
Actually your code looks good despite a small typo.
Excel = actxserver('excel.application');
% ^ capital E
Copy & paste exampel:
a={'This', 'is','a','test'};
[filename, pathname] = uiputfile('*.xls', 'Choose a file name');
outname = fullfile(pathname, filename);
xlswrite(outname,a);
excel=actxserver('Excel.application');
wb=excel.Workbooks.Open(outname);
wb.Worksheets.Item(1).Range('A1').Interior.Color=hex2dec('00FF00');
wb.Save
wb.Close
winopen(outname)

4 comentarios

omar Benamiar Messari
omar Benamiar Messari el 17 de Jul. de 2018
do you have any idea of how can we use this form [dec2base27(4),num2str(1)] in wb.Worksheets.Item(1).Range('A1').Interior.Color=hex2dec('00FF00'); to have for exemple different cell ??
Dennis
Dennis el 17 de Jul. de 2018
x=0; %0 to 25 (A - Z)
[char(65+x),num2str(1)]
If you can only read it you probably opened an excel application at one point and got an error, then it wasn't closed. Maybe check your task manager for any excel processes and get rid of them.
omar Benamiar Messari
omar Benamiar Messari el 17 de Jul. de 2018
Editada: omar Benamiar Messari el 17 de Jul. de 2018
ok i don't know why but your test is working without any problem, but mine had some so i just changed your a into matrice and it's working, (this is magic :p)
thank you so much for your help
Dennis
Dennis el 17 de Jul. de 2018
char() converts a number to an ASCII sign. 'A' has index 65 on ASCII table - that's pretty much all i know about it =P
I think the first 128 (0-127) chars are set in stone. All others can vary depending on your local setting.

Iniciar sesión para comentar.

Más respuestas (1)

omar Benamiar Messari
omar Benamiar Messari el 17 de Jul. de 2018

0 votos

your exemple is working perfectlly but i have now some errors in mine, when i save it's saving normally but when i open it it's teeling me that we can just open this file as reading file and the color stuff is not working on my code, but your exemple is working normally, i really can't understand why

Preguntada:

el 17 de Jul. de 2018

Comentada:

el 17 de Jul. de 2018

Community Treasure Hunt

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

Start Hunting!

Translated by