Java - импорт из Excel в MySQL - PullRequest
       3

Java - импорт из Excel в MySQL

0 голосов
/ 04 декабря 2018

У меня есть файл Excel (.xlsx) со столбцом

Column1     Column2      Column3      Column1
   A           50          30           40
   B           45          40           20
   .......................................

Мне нужно импортировать этот Excel в базу данных MySQL.Я использую следующий код:

 public static void main(String[] args) throws IOException {

    FileInputStream fis = new FileInputStream(new File("Data.xlsx"));
    XSSFWorkbook workbook = new XSSFWorkbook (fis);
    XSSFSheet sheet = workbook.getSheetAt(0);
    Iterator ite = sheet.rowIterator();
    while(ite.hasNext()){
        Row row = (Row) ite.next();
        Iterator<Cell> cite = row.cellIterator();
        while(cite.hasNext()){
            Cell c = cite.next();
            System.out.print(c.toString() +";");
        }
        System.out.println();
    }
    fis.close();
}

Мне нужно получить в списке всю строку.Этот код показывает в консоли все данные из строки, но я не хочу сейчас добавлять эти данные в список и импортировать список в MySQL.

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Я могу придумать несколько подходов для записи этих данных в базу данных MySQL, но я дам вам самый базовый подход для достижения того, чего вы хотите.Вы используете библиотеку Apache POI для записи всех данных на консоль.

while (rows.hasNext()) {
    String[] rowsVal = new String[Number_of_Columns];
    if (row.getCell(0).getStringCellValue().equalsIgnoreCase("Column_Name")) {
                    row = rows.next();
     }
    while (cells.hasNext()) {
        keyVal[j] = cells.next().getStringCellValue();
        j++;
    }
}

Над кодом будет храниться содержимое первой строки в массиве keyVal [].Теперь вам нужно включить пакеты, содержащие классы JDBC, необходимые для программирования баз данных.Следующий фрагмент кода будет полезен для вставки записей в таблицу:

String sql = "INSERT INTO Table " + "VALUES ("keyVal[0] + "," + keyVal[1] + "," + keyVal[2] + "," + keyVal[3])";

Приведенный выше фрагмент кода поможет вам вставить данные в базу данных.

Ссылки для справки: https://www.tutorialspoint.com/jdbc/jdbc-insert-records.htm

0 голосов
/ 04 декабря 2018

Это не прямой ответ на ваш вопрос, но на самом деле может быть даже лучший подход, чем вы думаете.Вы можете попробовать экспортировать свой лист Excel в виде файла CSV.Это означает, что строки будут выглядеть следующим образом:

Column1,Column2,Column3,Column4
A,50,30,40

Имея этот CSV-файл в руке, вы можете использовать инструмент MySQL LOAD DATA, который позволяет быстро импортировать CSV или другие обычные данные:

LOAD DATA INFILE 'C:/path/to/Data.xlsx' 
INTO TABLE yourTable
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;

Мотивом для возможного отказа от вашего текущего подхода является то, что использование библиотеки Apache стоит дорого, чтобы открыть книгу Excel, а затем прочитать ее.Даже после этого вам все равно придется использовать JDBC для записи этих данных в MySQL.

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