package com.tesr.services.implementations;
import java.io.File;
import java.io.IOException;
import java.util.*;
import com.tesr.services.models.Row;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ExcelService {
private XSSFWorkbook workbook;
private XSSFSheet sheet;
public boolean ReadExcelFile(String filename, String sheetname)
{
try
{
workbook = new XSSFWorkbook(filename);
sheet = workbook.getSheet(sheetname);
return true;
}
catch (IOException exp) {
System.out.println(exp.getMessage());
System.out.println(exp.getCause());
exp.printStackTrace();
return false;
}
}
public List SortSheetColumn(int columnToSort, int startRow)
{
List<XSSFRow> rows;
if (sheet != null)
{
rows = new ArrayList<>();
CellType cellType = sheet.getRow(startRow).getCell(columnToSort).getCellType();
List<Row> sortRows = new ArrayList<>();
for (int i = startRow; i < sheet.getPhysicalNumberOfRows(); i++)
{
XSSFRow row = sheet.getRow(i);
sortRows.add(new Row(row.getCell(columnToSort).getStringCellValue(), row));
}
sortRows.sort((r1, r2) -> r1.getKey().compareTo(r2.getKey()));
sortRows.forEach(r -> {
rows.add(r.getRow());
});
}
else
{
throw new NullPointerException("Null Pointer Exception sheet");
}
return rows;
}
}