如何使用java将.xls文件导入mysql数据库?

时间:2016-04-22 14:00:43

标签: java mysql excel csv

我尝试使用Java NetBeans将Excel文件.xls上传到我的MySQL数据库,但我找不到任何解决方案。

我尝试使用CSV文件并且工作正常,但我仍然希望使用.xls文件格式。

为实现此目的,我希望用户单击JButton中的JFrame,使用JFileChooser选择Excel文件,然后将该文件保存到我的数据库中。

以下是我目前拥有的图片: JFrame image

这是我到目前为止使用的代码:

private void importer_csv_btnActionPerformed(java.awt.event.ActionEvent evt) {
    JFileChooser chooser = new JFileChooser();
    chooser.showOpenDialog(null);
    File f = chooser.getSelectedFile();
    String filename = f.getAbsolutePath();
    import_interne_txt.setText(filename);

    try {

        BufferedReader br = new BufferedReader(new FileReader(filename));
        String line;
        while ((line = br.readLine()) != null) {
            String[] value = line.split(",");
            String sql = "INSERT INTO Interne(Matricule,Nom,Prénom,Sexe,Date_naissance,Nationalité,Lieu_naissance,Willaya,Email,Moyenne1,Moyenne2,Redoublement,Conseil,Num_Phone,Password,CPI_Code) " + "VALUES('" + value[0] + "','" + value[1] + "','" + value[2] + "','" + value[3] + "','" + value[4] + "','" + value[5] + "','" + value[6] + "','" + value[7] + "','" + value[8] + "','" + value[9] + "','" + value[10] + "','" + value[11] + "','" + value[12] + "','" + value[13] + "','" + value[14] + "','" + value[15] + "')";
            pst = Con.prepareStatement(sql);
            pst.executeUpdate();

        }
        br.close();
    } catch (Exception e) {
        JOptionPane.showMessageDialog(null, e);
    }
    Update_table();
}

1 个答案:

答案 0 :(得分:0)

使用Apache POI从xls文件中读取数据。

示例:

public extractDataFromXls(String fileName, sheetName) throws FileNotFoundException {
        FileInputStream fileInputStream = new FileInputStream(fileName);
        HSSFWorkbook workbook = new HSSFWorkbook(fileInputStream);
        HSSFSheet worksheet = workbook.getSheet(sheetName);
        HSSFRow row = worksheet.getRow(0);
        for (short i = 0; i < 5; i++) {
            HSSFCell cell = row.getCell(i);
            String value = cell.getStringCellValue();
            System.out.println(value);
        }
    }