How to set excel cell color to red from Matlab?
97 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Derek Jing
el 17 de Mzo. de 2011
Comentada: Guillaume
el 18 de En. de 2017
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
0 comentarios
Respuesta aceptada
Jiro Doke
el 17 de Mzo. de 2011
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 comentarios
JonSnow
el 18 de En. de 2017
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
el 18 de En. de 2017
@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.
Más respuestas (3)
Walter Roberson
el 24 de Oct. de 2016
Editada: Walter Roberson
el 24 de Oct. de 2016
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.
0 comentarios
KRUNAL
el 30 de Jul. de 2014
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?
0 comentarios
Prabhakaran thirugnanam
el 24 de Oct. de 2016
What should be colorindex for other colors?
0 comentarios
Ver también
Categorías
Más información sobre MATLAB Functions in Microsoft Excel en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!