Excel Sheet Manipulation APIs

Excel sheets are a favourite among business users. Sahi has APIs to manipulate Excel Sheets which work on non-Windows machines too. Sahi uses Apache POI libraries underneath.

Read Excel File

Reads the excel sheet and returns data as an associative array.

Given an Excel Sheet like

ABCDEFG
1NameAge
2Ram18
3Amir20
4

Parameters
$filePathstring
path to Excel file. Can be of extension .xls or .xlsx
path to Excel file. Can be of extension .xls or .xlsx . Relative path resolves relative to files folder of the current project.
$sheetNamestring optional Sheet name. Defaults to sheetname of first sheet.
$propsobject optionalProperties to specify for:
ignoreEmptyRows: boolean: Ignores the empty lines. Defaults to false.
includeHeader: boolean: If true, returns the header row also as the first row. Defaults to false.
Return Value
two dimensional array of stringsa 2 dimensional array of all values in the excel file

Modes Supported :
Raw Script
var $data = _readExcelFile("data.xls");

Sahi Pro Classic API :_readExcelFile


For more complex manipulation _getExcel can also be used. This allows modifying Excel sheets too.

Get Excel

The example below illustrates the usage of various APIs.

Parameters
$filePathstring
path to Excel file. Can be of extension .xls or .xlsx
path to Excel file. Can be of extension .xls or .xlsx . Relative path resolves relative to files folder of the current project.
$sheetNamestring optional Sheet name. Defaults to sheetname of first sheet.
Return Value
objectExcelPOI object which exposes various APIs to manipulate the Excel

Modes Supported :
Raw Script
//Get a handle to the Excel sheet
var $excel = _getExcel("D:/poiTest.xls","Sheet1");

//Set Data
var $excelData=[["ajay","babu","cheeran"],["david","elango","frank"],
["gokul","hari","irfan"],["jo","kumar","latha"],["mani","naraen","ojha"],
["peter","queen","richard"],["shalini","thomas","umesh"]];
$excel.setData($excelData);

//Get Data
var $getdata=$excel.getData();
_assertEqual("irfan",$getdata[2][2]);

//Insert New Row at end
var $insertRowData=["kathir","femina","jandir"];
$excel.insertRow($insertRowData);

//Insert New Row at given index
var $insertRowData=["kathir","femina","jandir"];
$excel.insertRow($insertRowData, 2); // will insert at index 2. Shifts other cells down

//Insert New Rows at end
var $insertRowsData=[["shoba","ravi","vasi"],["kajol","rani","sharuk"]];
$excel.insertRows($insertRowsData);

//Insert New Rows at given index
var $insertRowsData=[["shoba","ravi","vasi"],["kajol","rani","sharuk"]];
$excel.insertRows($insertRowsData, 2); // will insert at index 2. Shifts other cells down

//Delete Row at index 4
var $deleteRowIndex=4;
$excel.deleteRow($deleteRowIndex);

//Delete Rows indexed 1 and 4
var $deleteRowsIndexes=[1,4];
$excel.deleteRows($deleteRowsIndexes);

//Delete Rows from row 3 to end
$excel.deleteRows(3);

//Delete Rows from row 3 to row 8
$excel.deleteRows(3, 8);

//Get Cell Value at cell position 2,2
var $excelGet=$excel.get(2, 2);
_assertEqual("xezwanth", $excelGet);

//Set Cell Value at cell position 2,2
var $excelData=$excel.set(2,2,"444-444-4444");

//Get String array of all Sheet Names on that Excel.
var $arrayOfSheetNames = $excel.getSheetNames();

//Get ExcelPoi Workbook object
var $workbook = $excel.getRawWorkbook();

Sahi Pro Classic API :_getExcel