How do I write data to an Excel Spreadsheet with a custom cell background color and custom font color via MATLAB?

187 views (last 30 days)
I have data that I want to write to a cell in an Excel Spreadsheet, but I also want to assign a background color and font color to this cell. I would like to know the way to do this through MATLAB.

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 30 Apr 2021
Edited: MathWorks Support Team on 30 Apr 2021
This task can be accomplished using ActiveX with Excel. The following example function shows one way to do this:
function xlscolor(file, data, range)
%XLSCOLOR writes data like XLSWRITE
%but adds color options
% XLSCOLOR(FILE,DATA,RANGE) writes the variable in
% DATA to FILE, in the range specified by RANGE.
%Obtain the full path name of the file
file = fullfile(pwd, file);
%Open an ActiveX connection to Excel
h = actxserver('excel.application');
%Create a new work book (excel file)
%Select the appropriate range
ran = h.Activesheet.get('Range',range);
%write the data to the range
ran.value = data;
%The color is specified as an BGR triplet in hexadecimal notation
%RED = 0000FF
ran.interior.Color=hex2dec('00FF00'); %Green
ran.font.Color=hex2dec('FF0000'); %Blue
% save the file with the given file name, close Excel
Example invocation:
For more information on programming with Excel (For example, the commands like 'Add'), please consult the "Microsoft Excel Visual Basic Reference" via Excel's help menu.
For further information please refer:
2. MATLAB software as an Automation client and the Microsoft® Excel® spreadsheet program as the server:
3. Information on the hexadecimal notation of colors values (IMPORTANT: please note, Microsoft uses BGR ordering as opposed to the RGB notation explained below)
bloodymir on 29 Aug 2017
Hi there, I have a follow-up question. I have data that has already been written to Excel, and would now want to mark certain cells (e.g. outlier values) by a different color. The above answer seems to apply only to new files that are created in the process - is it possible to adjust existing ones?

Sign in to comment.

More Answers (1)

Clyde Helms
Clyde Helms on 8 Apr 2021

Community Treasure Hunt

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

Start Hunting!