2012-04-11 14 views
4

誰かがmatlabのrgbを通してExcelセルをペイントしてください私を助けることができますか? 10番目のセルがrgbによってペイントされることを望みます。
MatlabはExcelセルを塗る

values{1}(1,:) = {'1', '2', '3', '4', '5', '6', '7', '8', '9', '10'}; 
headers = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'}; 
xlswrite('example.xls', [headers; values{1}]); 

あなたに多くのことを感謝:]

+0

これは 'xlswrite'ではできませんが、代わりにActiveXを使用する必要があります。例えば、ここを見てください:http://www.orient-lodge.com/node/3430 – Jonas

+0

@Jonas こんにちはジョナス、私は奇妙な問題があるので私のメッセージを変更しました。 私はプログラムを実行し、2E60F720のように私のディレクトリに作成された新しいファイルがあります。なぜそれが作成されていますか?どうすれば修正できますか? 「EXCEL.EXE」をタスクマネージャーで閉じると、プログラムが停止し、これが表示されます: "エラー:リモートプロシージャコールが失敗しました。 エラー==> test1 at 212 ewb.Close(false); " ありがとう! –

+0

あなたのExcelファイルでセルが正しく着色されていますか?この場合は、あなたの質問を以前のものに戻し、yukの答えを受け入れて、まったく異なる問題について新しい質問を開きます。 – Jonas

答えて

4

あなたはこのような手順で、既存のファイル内のセルに色を付けることができます。

values = {'1', '2', '3', '4', '5', '6', '7', '8', '9', '10'}; 
headers = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'}; 
rgb = [255 0 0]; %# if you have 0 to 1 values multiply by 255 and round 
clr = rgb * [1 256 256^2]'; %'# convert to long number Excel understands 

e = actxserver ('Excel.Application'); %# open Activex server 
filename = fullfile(pwd,'example.xls'); %# full path required 
if exist(filename,'file') 
    ewb = e.Workbooks.Open(filename); %# open the file 
else 
    error('File does not exist.') %# or create a new file 
end 
esh = ewb.ActiveSheet; 
for c = 1:numel(values) 
    esh.Range(strcat(headers{c},values{c})).Interior.Color = clr; 
end 
ewb.Save 
ewb.Close(false) 
e.Quit 

あなたが進値でRGBの色をも指定することができますし、 hex2decを使用してください。この場合、赤の場合は0000FFのように反対の順序にする必要があります。

関連する問題