如何使用Java swing将Excel文件与应用程序软件链接起来

我必须链接一个excel文件和我正在开发的一个应用软件。excel文件将包含进行调查的问卷。我有这个代码,它只能打开一个Jpanel来select文件。我select文件后什么都不是我希望能够根据excel文件中的问题生成一个模板(比如从excel文件中提取问题并从中创build一个模板),以后我必须在网上上传。请在这件事上给予我帮助?

import java.io.*; import java.awt.*; import javax.swing.*; import java.awt.event.*; import javax.swing.filechooser.*; public class SelectFile extends JFrame{ public static void main(String[]args){ JFrame frame = new JFrame(); frame.setLayout(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setTitle("Select File for Linking"); frame.setSize(400, 100); Container container = frame.getContentPane(); container.setLayout(new GridBagLayout()); final JTextField text=new JTextField(20); JButton b=new JButton("Select File"); text.setBounds(20,20,120,20); b.setBounds(150,20,80,20); // b.setText("<html><font color='blue'><u>Select File</u></font></html>"); b.setHorizontalAlignment(SwingConstants.LEFT); //b.setBorderPainted(false); //b.setOpaque(false); // b.setBackground(Color.lightGray); b.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e){ JFileChooser fc = new JFileChooser(); fc.addChoosableFileFilter(new OnlyExt()); int returnval = fc.showOpenDialog(null); if (returnval == JFileChooser.APPROVE_OPTION) { File file = fc.getSelectedFile(); text.setText(file.getPath()); } } }); container.add(text); container.add(b); frame.setVisible(true); } } class OnlyExt extends javax.swing.filechooser.FileFilter{ public boolean accept(File file) { if (file.isDirectory()) return false; String name = file.getName().toLowerCase(); return (name.endsWith(".xls")); } public String getDescription() { return "Excel ( *.xls)"; } } 

看看这个来源的一些提示。

 import java.io.File; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.filechooser.FileNameExtensionFilter; import javax.swing.border.EmptyBorder; public class SelectFile { public static void main(String[]args) { SwingUtilities.invokeLater( new Runnable() { public void run() { JFrame frame = new JFrame("Select File for Linking"); // don't use null layouts. //frame.setLayout(null); // create a panel so we can add a border JPanel container = new JPanel(new FlowLayout(3)); container.setBorder(new EmptyBorder(10,10,10,10)); frame.setContentPane(container); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // instead call pack() after components are added //frame.setSize(400, 100); final JTextField text=new JTextField(20); JButton b=new JButton("Select File"); // irrelevant unless button stretched by layout //b.setHorizontalAlignment(SwingConstants.LEFT); b.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JFileChooser fc = new JFileChooser(); String desc = "Excel ( *.xls)"; String[] types = {".xls"}; fc.addChoosableFileFilter( new FileNameExtensionFilter(desc, types)); int returnval = fc.showOpenDialog(null); if (returnval == JFileChooser.APPROVE_OPTION) { File file = fc.getSelectedFile(); text.setText(file.getPath()); try { // 1.6+ Desktop.getDesktop().edit(file); } catch(Exception ex) { ex.printStackTrace(); } } } }); container.add(text); container.add(b); frame.pack(); frame.setVisible(true); } }); } } 

顺便说一句 – 这里的JFrame可能会更好地转换为JDialogJOptionPane