/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.gui.utils.ole;
import org.eclipse.swt.ole.win32.OleAutomation;
import org.eclipse.swt.ole.win32.OleControlSite;
import org.eclipse.swt.ole.win32.Variant;
/**
* Controls the excel WorkSheet object.
*
* @author Philipp Fischer
* @author Markus Kunde
*/
public class OleXLWorksheet extends OleXLItem {
/**
* General constructor.
*
* @param oleWorksheet Automation-object corresponding to the container.
* @param controlSite OleControlSite that corresponds to the excel object.
*/
public OleXLWorksheet(OleAutomation oleWorksheet, OleControlSite controlSite) {
super(oleWorksheet, controlSite);
}
/**
* Gives access to a cell by a given address.
*
* @param address The address of the cell to access to.
* @return Range that references the addressed cell.
*/
public OleXLRange getRange(String address) {
int rangeID = getIDofName("Range");
Variant[] varArgs = new Variant[] { new Variant(address) };
OleAutomation oleRange = oleObject.getProperty(rangeID, varArgs).getAutomation();
logOleError(oleObject.getLastError());
return new OleXLRange(oleRange, controlSite);
}
/**
* Gives access to cells which covers used range of worksheet.
*
* @return Range that references the used range cell(s).
*/
public OleXLRange getUsedRange() {
invoke("Activate");
setProperty("Visible", new Variant(true));
//Variant[] varArgs = new Variant[] { new Variant(false), new Variant(false) };
Variant range = getProperty("UsedRange");
return new OleXLRange(range.getAutomation(), controlSite);
}
}