我正在编写一个Java应用程序,将Excel文件导入数据库时​​遇到问题

时间:2019-05-15 06:21:50

标签: java mysql excel jdbc import-from-excel

我想将数据批量导入数据库,而不是一一输入。

使用Sql Server的I / m用于数据库,使用Eclipse进行开发。

JScrollPane scroll = new JScrollPane(tableAsset);

        JButton btnButton = new JButton("SELECT FILE");
        btnButton.setFont(new Font("Verdana", Font.PLAIN, 13));
        btnButton.addActionListener(new ActionListener() {      
            public void actionPerformed(ActionEvent e) {        

                JFileChooser fileopen = new JFileChooser();     
                FileFilter filter = new FileNameExtensionFilter("Text/CSV file", "txt", "csv", "xls", "xlsx");      
                fileopen.addChoosableFileFilter(filter);        

                int ret = fileopen.showDialog(null, "Choose file");

                if (ret == JFileChooser.APPROVE_OPTION) {

                    // Read Text file
                    File file = fileopen.getSelectedFile();
                        try {       
                            BufferedReader br = new BufferedReader(new FileReader(file));
                            String line;
                            int row = 0;
                            while ((line = br.readLine()) != null) {        
                                String[] arr = line.split(",");     
                                dtm.addRow(new Object[0]);      
                                dtm.setValueAt(arr[0], row, 0);     
                                dtm.setValueAt(arr[1], row, 1);     
                                dtm.setValueAt(arr[2], row, 2);     
                                dtm.setValueAt(arr[3], row, 3);     
                                dtm.setValueAt(arr[4], row, 4);     
                                dtm.setValueAt(arr[5], row, 5); 
                                dtm.setValueAt(arr[6], row, 6);     
                                dtm.setValueAt(arr[7], row, 7);     
                                dtm.setValueAt(arr[8], row, 8);     
                                dtm.setValueAt(arr[9], row, 9);     
                                dtm.setValueAt(arr[10], row, 10);       
                                dtm.setValueAt(arr[11], row, 11);   
                                dtm.setValueAt(arr[12], row, 12);       
                                dtm.setValueAt(arr[13], row, 13);       
                                dtm.setValueAt(arr[14], row, 14);       
                                dtm.setValueAt(arr[15], row, 15);   
                                dtm.setValueAt(arr[16], row, 16);       
                                dtm.setValueAt(arr[17], row, 17);   
                                dtm.setValueAt(arr[18], row, 18);       
                                dtm.setValueAt(arr[19], row, 19);       
                                dtm.setValueAt(arr[20], row, 20);       
                                dtm.setValueAt(arr[21], row, 21);
                                dtm.setValueAt(arr[22], row, 22);
                                dtm.setValueAt(arr[23], row, 23);       
                                dtm.setValueAt(arr[24], row, 24);   
                                dtm.setValueAt(arr[25], row, 25);       
                                dtm.setValueAt(arr[26], row, 26);       
                                dtm.setValueAt(arr[27], row, 27);       
                                dtm.setValueAt(arr[28], row, 28);   
                                dtm.setValueAt(arr[29], row, 29);       
                                dtm.setValueAt(arr[30], row, 30);   
                                dtm.setValueAt(arr[31], row, 31);       
                                dtm.setValueAt(arr[32], row, 32);       
                                dtm.setValueAt(arr[33], row, 33);       
                                dtm.setValueAt(arr[34], row, 34);
                                row++;      
                            }       
                            br.close();     
                        } catch (IOException ex) {                  
                            ex.printStackTrace();   
                            JOptionPane.showMessageDialog(null, ex);
                        }

                        lblResult.setText(fileopen.getSelectedFile().toString());       
                }        

            }

        });
        getContentPane().setLayout(null);

单击“导入”按钮时,将弹出另一个窗口来选择文件(文件可以是.txt,.csv,.xlx)

但是当我选择文件时,来自excel的实际数据没有显示在表中。而且它无法加载到数据库。

0 个答案:

没有答案