Java 在swing中上载Excel文件
我上传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)。请告诉我我做错了什么。例外情况如下Java 在swing中上载Excel文件,java,excel,swing,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
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);
}
}
公共类Csv\u上传扩展了JFrame实现ActionListener
{
公共静态jf框架;
JPanel小组;
按钮b1、b2、b3、b4;
JTextField-txt1;
jlabell1;
字体g,g1;
JFileChooser fc;
jtext面积测井;
文件文件1;
字符串str;
DBConnection connect=新的DBConnection();
静态私有最终字符串换行符=“\n”;
公共Csv_上传()
{
panel=(JPanel)getContentPane();
panel.setLayout(空);
g=新字体(“格鲁吉亚”,字体粗体,22);
g1=新字体(“格鲁吉亚”,字体粗体,15);
setBackground(新java.awt.Color(204230255));
l1=新的JLabel(“上传Excel文件”);
l1.立根(200、50、400、30);
l1.设置字体(g);
l1.设置前景(颜色为红色);
面板。添加(l1);
txt1=新的JTextField();
txt1.立根(480150200,40);
面板。添加(txt1);
fc=新的JFileChooser();
b1=新的JButton(“浏览文件”);
b1.立根(50150200,40);
b1.setFont(g1);
b1.设置前景(颜色为红色);
面板。添加(b1);
b2=新的JButton(“上传文件”);
b2.立根(260150200,40);
b2.设置前景(颜色为红色);
b2.setFont(g1);
面板。添加(b2);
ImageIcon img=新的ImageIcon(“calender.png”);
b3=新的JButton(img);
b3.立根(50230,50,30);
b3.设置前景(颜色为红色);
b3.setFont(g1);
面板。添加(b3);
b1.添加ActionListener(本);
b2.addActionListener(本);
b3.添加ActionListener(本);
//b4.添加ActionListener(本);
}
@凌驾
已执行的公共无效操作(操作事件e)
{
如果(如getSource()==b1){
int returnVal=fc.showOpenDialog(Csv_Upload.this);
if(returnVal==JFileChooser.APPROVE_选项){
file1=fc.getSelectedFile();
str=String.valueOf(file1);
System.out.println(“文件fath”+file1);
}
//处理保存按钮操作。
}
如果(如getSource()==b2)
{
尝试
{
FileInputStream file=newfileinputstream(新文件(str));
System.out.println(“在文件中执行的操作”+文件);
XSSF工作簿=新XSSF工作簿(文件);
XSSFSheet sheet=workbook.getSheetAt(0);
迭代器rowIterator=sheet.Iterator();
while(roweiterator.hasNext())
{
行=行迭代器。下一步();
//对于每一行,遍历所有列
迭代器cellIterator=row.cellIterator();
while(cellIterator.hasNext())
{
Cell=cellIterator.next();
开关(cell.getCellType())
{
case Cell.Cell\u类型\u数值:
System.out.print(cell.getNumericCellValue()+“\t”);
打破
case Cell.Cell\u类型\u字符串:
System.out.print(cell.getStringCellValue()+“\t”);
打破
}
}
System.out.println(“”);
}
file.close();
}
捕获(异常e1)
{
e1.printStackTrace();
}
}
如果(例如getSource()等于(b3))
{
setxt(新的日期选择器(f.setPickedDate());
}
}
公共静态void main(字符串[]s)
{
f=新的Csv_上传();
f、 setVisible(真);
f、 设置大小(750500);
f、 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
堆栈跟踪:
线程“AWT-EventQueue-0”java.lang.NoSuchMethodError中出现异常:
org.apache.poi.xssf.usermodel.XSSFWorkbook.(Ljava/io/InputStream;)V
在ADD.Csv_Upload.actionPerformed(Csv_Upload.java:129)处
在javax.swing.AbstractButton.fireActionPerformed(未知源)
位于javax.swing.AbstractButton$Handler.actionPerformed(未知源)
在javax.swing.DefaultButtonModel.fireActionPerformed(未知源)
位于javax.swing.DefaultButtonModel.setPressed(未知源)
位于javax.swing.plaf.basic.BasicButtonListener.mouseReleased(未知源代码)
位于java.awt.Component.ProcessMouseeEvent(未知源)
位于javax.swing.JComponent.ProcessMouseeEvent(未知源)
位于java.awt.Component.processEvent(未知源)
位于java.awt.Container.processEvent(未知源)
位于java.awt.Component.dispatchEventImpl(未知源)
位于java.awt.Container.dispatchEventImpl(未知源)
位于java.awt.Component.dispatchEvent(未知源)
位于java.awt.LightweightDispatcher.RetargetMouseeEvent(未知源)
位于java.awt.LightweightDispatcher.ProcessMouseeEvent(未知源)
位于java.awt.LightweightDispatcher.dispatchEvent(未知源)
位于java.awt.Container.dispatchEventImpl(未知源)
位于java.awt.Window.dispatchEventImpl(未知源)
位于java.awt.Component.dispatchEvent(未知源)
位于java.awt.EventQueue.dispatchEventImpl(未知源)
位于java.awt.EventQueue.access$200(未知源)
在java.awt.EventQueue$3.run处(未知源)
在java.awt.EventQueue$3.run处(未知源)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.security.ProtectionDomain$1.doIntersectionPri
Class-Path: lib/poi-3.9-20121203.jar lib/poi-ooxml-3.9-20121203.jar …