繁体   English   中英

java-从excel导入到mysql

[英]java - import from excel to mysql

我有带有列的Excel文件(.xlsx)

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

我需要在MySQL数据库中导入此excel。 我使用以下代码:

 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中。

任何想法?

我可以想到几种将数据写入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

这不是您问题的直接答案,但实际上可能是比您正在考虑的方法更好的方法。 您可以尝试将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。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM