Newer
Older
ExcelImport / src / com / tesr / services / implementations / ExcelService.java
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;
    }
}