正在上传Excel文件

时间:2014-04-05 06:33:42

标签: java excel swing

我上传Excel文件并根据格式读取该文件,但问题是该文件未被读取。我越来越异常了。我正在添加所有必需的jar文件(dom4j-1.6.1,poi-3.9-20121203,poi-ooxml-3.9-20121203,poi-ooxml-schemas-3.9-20121203,xmlbeans-2.3.0)。请告诉我我的错误。例外情况如下。

public class Csv_Upload extends JFrame implements ActionListener
{
    public static JFrame f;
    JPanel panel;
    JButton b1,b2,b3,b4;
    JTextField txt1;
    JLabel l1;
    Font g,g1;
      JFileChooser fc;
      JTextArea log;
      File file1 ;
      String str;
    DBConnection connect=new  DBConnection();
     static private final String newline = "\n";
    public Csv_Upload() 
    {
        panel=(JPanel)getContentPane();
        panel.setLayout(null);
        g=new Font("Georgia",Font.BOLD,22);
        g1=new Font("Georgia",Font.BOLD,15);
        panel.setBackground(new java.awt.Color(204, 230 , 255));    
        l1=new JLabel("Upload Excel File");
        l1.setBounds(200, 50, 400, 30);
        l1.setFont(g);
        l1.setForeground(Color.RED);
        panel.add(l1);
            txt1=new JTextField();
        txt1.setBounds(480, 150,200,40);
        panel.add(txt1);
        fc = new JFileChooser();
        b1=new JButton("Browse File");
        b1.setBounds(50, 150,200,40);
        b1.setFont(g1);
        b1.setForeground(Color.RED);
        panel.add(b1);
        b2=new JButton("Upload File");
        b2.setBounds(260, 150,200,40);
        b2.setForeground(Color.RED);
        b2.setFont(g1);
        panel.add(b2);
        ImageIcon img=new ImageIcon("calender.png");
        b3=new JButton(img);
        b3.setBounds(50, 230,50,30);
        b3.setForeground(Color.RED);
        b3.setFont(g1);
        panel.add(b3);      
        b1.addActionListener(this);
        b2.addActionListener(this);
        b3.addActionListener(this);
//      b4.addActionListener(this);
        }

    @Override
    public void actionPerformed(ActionEvent e)
    {
         if (e.getSource() == b1) {
              int returnVal = fc.showOpenDialog(Csv_Upload.this);

              if (returnVal == JFileChooser.APPROVE_OPTION) {
             file1 = fc.getSelectedFile();
             str=String.valueOf(file1);
                System.out.println("file fath"+file1);
              } 
   //Handle save button action.
} 
         if(e.getSource()==b2)
         {
             try
                {
                    FileInputStream file = new FileInputStream(new File(str));
                    System.out.println("action performed in file"+file);
                    XSSFWorkbook workbook = new XSSFWorkbook(file);
                    XSSFSheet sheet = workbook.getSheetAt(0);
                    Iterator<Row> rowIterator = sheet.iterator();
                    while (rowIterator.hasNext()) 
                    {
                        Row row = rowIterator.next();
                        //For each row, iterate through all the columns
                        Iterator<Cell> cellIterator = row.cellIterator();

                        while (cellIterator.hasNext()) 
                        {
                            Cell cell = cellIterator.next();

                            switch (cell.getCellType()) 
                            {
                                case Cell.CELL_TYPE_NUMERIC:
                                    System.out.print(cell.getNumericCellValue() + "\t");
                                    break;
                                case Cell.CELL_TYPE_STRING:
                                    System.out.print(cell.getStringCellValue() + "\t");
                                    break;
                            }
                        }
                        System.out.println("");
                    }
                    file.close();
                } 
                catch (Exception e1) 
                {
                    e1.printStackTrace();
                }
         }

         if(e.getSource().equals(b3))
            {
            txt1.setText(new DatePicker(f).setPickedDate());
            }
          }

    public static void main(String []s)
        {
             f=new Csv_Upload();
            f.setVisible(true);
            f.setSize(750,500);

            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }
}

堆栈追踪:

Exception in thread "AWT-EventQueue-0" java.lang.NoSuchMethodError:
    org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(Ljava/io/InputStream;)V
at ADD.Csv_Upload.actionPerformed(Csv_Upload.java:129)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

1 个答案:

答案 0 :(得分:3)

班级org.apache.poi.xssf.usermodel.XSSFWorkbook的{​​{3}}接受java.io.InputStreamXSSFWorkbook位于poi-ooxml-schemas-3.9-20121203.jar。检查项目的README目录中的dist文件。还要检查项目JAR的清单,它应该是这样的:

Class-Path: lib/poi-3.9-20121203.jar lib/poi-ooxml-3.9-20121203.jar …