Anyway to run excell commands from matlab? Like draw a boarder range?
19 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I know how excel com commands can be called from matlab with activex com.
How could I draw a border with com?
Sub SetRangeBorder()
With Worksheets("Sheet1").Range("B2").Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 3
End With
End Sub
Source: Microsoft Excel Borders
Excel = actxserver('excel.application');
WB = Excel.Workbooks.Open(xlsfile,0,false);
DataSheetObj.Range('B2:B4').Borders.Item('xlEdgeLeft').LineStyle = 1;
DataSheetObj.Range('B2:B4').Borders.Item('xlEdgeLeft').Weight = -4138;
% Save Workbook
WB.Save();
% Close Workbook
WB.Close();
% Quit Excel
Excel.Quit();
I have tried the above code, it throws an error:
Expected one output from a curly brace or dot indexing expression, but there were 5 results.
0 commentaires
Réponses (1)
Steven Lord
le 27 Sep 2019
How did you create DataSheetObj and what is its size? Does it have one element or five?
5 commentaires
Steven Lord
le 30 Sep 2019
Try using the code from the answer to which I linked in the sentence starting with "Doing a quick Google search" as a starting point. You will need DataWkbkObj to be defined if you want to use it to control the borders of a region.
Lucie S.
le 23 Avr 2020
Modifié(e) : Lucie S.
le 23 Avr 2020
Indeed, this works all together
AppObj = actxserver('Excel.Application');
AppObj.Visible = true;
WkbkObj = AppObj.Workbooks;
DataWkbkObj = WkbkObj.Add;
DataWkbkObj.Sheets.Add().Name = 'Test';
DataSheetObj = DataWkbkObj.Sheets.Item('Test');
DataSheetObj.Range('B2:B4').Borders.Item('xlEdgeLeft').LineStyle = 1;
DataSheetObj.Range('B2:B4').Borders.Item('xlEdgeLeft').Weight = -4138;
% Other examples of modifying borders, I struggle to find:
DataSheetObj.Range('B2:B4').Borders.Item('xlEdgeBottom').Weight = -4138; % quite thick border weight
DataSheetObj.Range('B2:B8').Borders.Item('xlEdgeTop').Weight =2; % default border weight
% To do borders on many cells:
DataSheetObj.Range('B2:E8').Borders.Item('xlInsideVertical').LineStyle = 1; % All inside vertical borders
DataSheetObj.Range('B2:E8').Borders.Item('xlInsideHorizontal').LineStyle = 1; % All inside Horizontal borders
DataSheetObj.Range('B2:E8').Borders.Item('xlInsideVertical').Color =hex2dec('00FF00'); % change color using hexa coded RGB color
DataSheetObj.Range('B2:E8').Borders.Item('xlInsideVertical').ColorIndex =15; % change color using Excel Color Index (here grey) (google to find more colors)
Voir également
Catégories
En savoir plus sur Spreadsheets dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!