[英]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.