Как хранить данные Excel в результирующем наборе, используя Java - PullRequest
0 голосов
/ 20 сентября 2019

Мне нужно сравнить данные Excel (по строкам) с таблицей базы данных.

Может кто-нибудь, пожалуйста, помогите мне в этом.

Я могу прочитать файл Excel по строкам и столбцам правильно с приведенным ниже кодом

public class POC {

public static void main(String[] args) {

    String colText = null;
    XSSFWorkbook workbook;
    Cell cell = null;
    try {
        HashSet<String> xlRead = new HashSet<String>();

        InputStream myxls = new FileInputStream(new File(
                "excelpath.xlsx"));

        workbook = new XSSFWorkbook(myxls);

        Sheet sheet = workbook.getSheetAt(0); // Get Your Sheet.
        java.util.Iterator<Row> rowterator = sheet.rowIterator();
        while (rowterator.hasNext()) {
            Row row = rowterator.next();
            java.util.Iterator<Cell> cellIterator = row.cellIterator();
            while (cellIterator.hasNext()) {
                cell = cellIterator.next();
                switch (cell.getCellType()) {
                case Cell.CELL_TYPE_STRING:
                    xlRead.add(cell.getStringCellValue() + "");
                    System.out.println(cell.getStringCellValue());

                default:
                    break;
                }
            }
        }
        System.out.println("");
        myxls.close();

        for (String s : xlRead)
            System.out.println(s);
    } catch (IOException e) {
        e.printStackTrace();
       }
   }
}

1 Ответ

0 голосов
/ 20 сентября 2019

Предполагается, что вы просто создадите объект для хранения ваших данных из базы данных (используйте для этого JPA) с реализацией клиента compareTo(Object object).Затем вы можете использовать один и тот же объект для хранения данных, полученных из Excel, и сравнить два объекта с помощью созданного вами метода «CompareTo»?

@Entity 
@Table(name="Age") 
public class MyAge() {

    public MyAge();

    @Id
    @Column(name="id")
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    int id;

    @Column(name="age")
    private int age;

    ... getters and setters, though lombok is better ... 

    @Override
    public int compareTo(MyAge myAge) {
      return Integer.compare(age, myAge.age);
    }
}
...