< 戻る 【 Calc 】
任意の範囲を選択状態にする場合は
com.sun.star.view.XSelectionSupplier /
.select()
を使う。
Cellの範囲設定
com.sun.star.sheet.XSpreadsheet
getCellRangeByName
列やRownの指定は
com.sun.star.table.XColumnRowRange
.getColumns().getByIndex()
.getRows().getByIndex()
以下のコードでは間に1secの待機時間を設けて、
目視確認できるようにしている。
//Select Cell and Colomn and Row
importClass(Packages.com.sun.star.chart.XChartData);
importClass(Packages.com.sun.star.container.XNamed);
importClass(Packages.com.sun.star.frame.XController);
importClass(Packages.com.sun.star.frame.XModel);
importClass(Packages.com.sun.star.sheet.XSpreadsheetView);
importClass(Packages.com.sun.star.uno.UnoRuntime);
importClass(Packages.javax.swing.JOptionPane);
importClass(Packages.com.sun.star.view.XSelectionSupplier);
importClass(Packages.com.sun.star.sheet.XSpreadsheet);
importClass(Packages.com.sun.star.table.XColumnRowRange);
importClass(Packages.java.lang.Thread);
try{
xSheetComponent = XSCRIPTCONTEXT.getDocument();
xModel = UnoRuntime.queryInterface(XModel, xSheetComponent);
xController = xModel.getCurrentController();
xSpreadsheetView = UnoRuntime.queryInterface(XSpreadsheetView, xController);
xSpreadsheet = xSpreadsheetView.getActiveSheet();
oSel = UnoRuntime.queryInterface(XSelectionSupplier, xController);
//Select Cells
oRng = UnoRuntime.queryInterface(XSpreadsheet, xSpreadsheet);
oRange = oRng.getCellRangeByName( "A1:A5" );
oSel.select(oRange)
Thread.sleep(1000); // 1sec
//Select Column
oRng = UnoRuntime.queryInterface(XColumnRowRange, xSpreadsheet);
oRange = oRng.getColumns().getByIndex(1); // B Colum
oSel.select(oRange)
Thread.sleep(1000); // 1sec
//Select Row
oRng = UnoRuntime.queryInterface(XColumnRowRange, xSpreadsheet);
oRange = oRng.getRows().getByIndex(2); // No.3 Row
oSel.select(oRange)
JOptionPane.showMessageDialog(null, "Success\n(LO7.2.5.2)");
}catch(e){
//Error Handling
errorname = e.name;
errormsg = e.message;
eDisp= errorname + "\n" + errormsg;
JOptionPane.showMessageDialog(null, eDisp);
}
複数の列やRownの指定指定する時は com.sun.star.sheet.XSpreadsheet 列 : .getCellRangeByName("B:C") 行 : .getCellRangeByName("2:4") にて指定可能。
//Select Cell and Colomn and Row importClass(Packages.com.sun.star.chart.XChartData); importClass(Packages.com.sun.star.container.XNamed); importClass(Packages.com.sun.star.frame.XController); importClass(Packages.com.sun.star.frame.XModel); importClass(Packages.com.sun.star.sheet.XSpreadsheetView); importClass(Packages.com.sun.star.uno.UnoRuntime); importClass(Packages.javax.swing.JOptionPane); importClass(Packages.com.sun.star.view.XSelectionSupplier); importClass(Packages.com.sun.star.sheet.XSpreadsheet); importClass(Packages.java.lang.Thread); try{ xSheetComponent = XSCRIPTCONTEXT.getDocument(); xModel = UnoRuntime.queryInterface(XModel, xSheetComponent); xController = xModel.getCurrentController(); xSpreadsheetView = UnoRuntime.queryInterface(XSpreadsheetView, xController); xSpreadsheet = xSpreadsheetView.getActiveSheet(); oSel = UnoRuntime.queryInterface(XSelectionSupplier, xController); //Select Columns oRng = UnoRuntime.queryInterface(XSpreadsheet, xSpreadsheet); oRange = oRng.getCellRangeByName( "B:C" ); oSel.select(oRange) Thread.sleep(1000); // 1sec //Select Rows oRng = UnoRuntime.queryInterface(XSpreadsheet, xSpreadsheet); oRange = oRng.getCellRangeByName("2:4"); oSel.select(oRange) JOptionPane.showMessageDialog(null, "Success\n(LO7.2.5.2)"); }catch(e){ //Error Handling errorname = e.name; errormsg = e.message; eDisp= errorname + "\n" + errormsg; JOptionPane.showMessageDialog(null, eDisp); }