How to set excel cell color to red from Matlab?

134 次查看(过去 30 天)
According to excel color index, the color index for red is 3.
In VBA, I can easily set red color, but in matlab code, I tried different numbers for Interior.ColorIndex, never got red color.
Anyone can tell me why? Thanks a lot.
-Derek

采纳的回答

Jiro Doke
Jiro Doke 2011-3-17
This works for me:
% Connect to Excel
Excel = actxserver('excel.application');
% Get Workbook object
WB = Excel.Workbooks.Open(fullfile(pwd, 'Book1.xlsx'),0,false);
% Set the color of cell "A1" of Sheet 1 to RED
WB.Worksheets.Item(1).Range('A1').Interior.ColorIndex = 3;
% Save Workbook
WB.Save();
% Close Workbook
WB.Close();
% Quit Excel
Excel.Quit();
  3 个评论
JonSnow
JonSnow 2017-1-18
Jiro, has any of this syntax changed over the different versions of Matlab (I am using R2015b)? I have the code:
filename = 'testFile.xlsx';
xlswrite(filename,5)
Excel = actxserver('Excel.application');
Workbooks = Excel.Workbooks;
Excel.visible = 1;
Workbooks.Worksheets.Item(1).Range('A1').Interior.ColorIndex = 3;
But that gives me an error on the last line " No appropriate method, property, or field 'Worksheets' for class 'Interface.000208DB_0000_0000_C000_000000000046'."
Also, what is Item(1)?
Guillaume
Guillaume 2017-1-18
@JonSnow, please start your own question so that whoever answers your problem can get reputation points.
In particular, your code is not the same at all as the one Jiro wrote. The error is correct, Worksheets is not a member of the Workbooks collection (it's a member of Workbook, a completely different class)
Item(1) is a property of the Worksheets collection and returns the first Worksheet in that collection. In VBA you can directly access it as Worksheets(1) as it is the default property of the collection. Matlab does not understand default property, so you have to use its name to access it.
For a more detailed answer, as said, start your own question.

请先登录,再进行评论。

更多回答(3 个)

Walter Roberson
Walter Roberson 2016-10-24
编辑:Walter Roberson 2016-10-24
Following along with Jiro's solution:
The list of color index values and associated colors can be found at http://dmcritchie.mvps.org/excel/colors.htm . There are 56 predefined colors.
You can also set the RGB color more directly. If you have R, G, and B in the 0 to 255 range, then:
C = double(R) * 256^0 + double(G) * 256^1 + double(B) * 256^2;
WB.Worksheets.Item(1).Range('A1').Interior.Color = C;
This is backwards of the typical order, but I have confirmed it works.

KRUNAL
KRUNAL 2014-7-30
Hi Jiro,tell me what if the range is unknown? or to put it in a better way, if one wants to color only those cells that have specific strings characters in them. I did try xlsfont, but it does not work if I want to do
xlsfont('file.xls','Sheet1','Find','something','colorindex',3);
In ActiveX server too it is asking for range. What do you suggest to do? Do you think it can be done in some another way?

Prabhakaran thirugnanam
What should be colorindex for other colors?

Community Treasure Hunt

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

Start Hunting!

Translated by