Как я могу создать одну таблицу базы данных в данных Java из 4 листов Excel? - PullRequest
0 голосов
/ 08 февраля 2019

В моем проекте я загрузил листы Excel и извлекаю их с помощью Java, после получения файлов Excel я просто хочу создать таблицу базы данных.Эти листы Excel содержат список оценок (каждый лист Excel содержит один список оценок предмета), например, имя ученика, внутренний, внешний результат.если это один лист Excel, то я могу легко создать таблицу в БД.Но мне нужно создать таблицу из 4 листов.

Я просто попытался перечислить все файлы Excel, использующие цикл for, и получать данные по одному, но это не мое решение.

STUDENT NAME    CIA  ESE      TOTAL

 AJAY G         46   31         77
 AJITH V        41   27         68
AJITH KUMAR     40   26         66

И мой код Java находится здесь:

 String dirs[] = file.list();
        for(String i:dirs) {
            // here i can get the file one by one 
            fis = new FileInputStream(fullpath+"/"+i);
            wb = WorkbookFactory.create(fis);
            System.out.println(wb.getNumberOfSheets());
            sh = wb.getSheet("Sheet1");
            int noOfRows = sh.getLastRowNum();
            int noOfCols = sh.getRow(7).getLastCellNum();
            System.out.println("Rows : "+ noOfRows);
            System.out.println("Cols : "+ noOfCols);
        }

Выше приведены мои данные листа Excel и все листы похожи на разные темы (имя субъекта - это имя файла, поэтому я могу его взять).

То, что я ожидаю, - это создать одну таблицу в БД, например:

Table name : StudentResult

Stuname | Subject1 | Sub1CIA | Sub1ESE | Subject2 | Sub2CIA | Sub2ESE ...

и т. Д. (Получите оставшийся столбец таблицы Excel как этот.)

1 Ответ

0 голосов
/ 08 февраля 2019

Предполагая, что каждый лист содержит заголовок столбца, соберите заголовки столбцов со всех листов и создайте их уникальный набор.Затем вы можете использовать этот набор для создания таблицы базы данных, динамически выполняющей DDL с использованием JDBC.

Если вы хотите создать таблицу после цикла for, объявите переменную Set над циклом for и продолжайте добавлять к ней заголовки столбцов из каждого листа.Как только элемент управления выйдет из цикла, у вас будет набор с заголовками столбцов.Вот псевдокод для этого

    // Declare a set here
    Set<String> dbColumns = new HashSet<String>();

    String dirs[] = file.list();
    for(String i:dirs) {

        // For each sheet
        // Get the heading row ( may be col 1 depending on the work sheet)

        // Get the cells from this row

        // Add the values to the dbColumns set
    }

    // Now dbColumns contains the list for columns to be created

    // Iterate through this set and form the DDL Statement

    // Execute the DDL using jdbc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...