从Java中预先存在的Excel文件中读取数据

时间:2017-01-10 16:29:22

标签: java excel readfile filenotfoundexception

我无法从预先存在的Excel文件中读取数据。

fileName的一个示例是“按姓氏捐赠 - 截至12月15日08/20/40 PST 2016.xls”

这就是我的方法:

public void addDonorsFF() throws IOException
{
    JTextField a = new JTextField(20);
    Object[] message = {"Enter File Name:", a, "\nIt is best to directly copy paste the file name, including .xls \nYou cannot import Shipping files."};
    int option = JOptionPane.showConfirmDialog(null, message, "Select File", JOptionPane.OK_CANCEL_OPTION);
    if (option == JOptionPane.OK_OPTION)
    {
        String fileName = (String)a.getText();
        FileInputStream file = new FileInputStream(new File(fileName));

        //Create Workbook instance holding reference to .xls file
        HSSFWorkbook workbook = new HSSFWorkbook(file);

        //Get sheet from the workbook
        HSSFSheet sheet = workbook.getSheetAt(0);

        for(int i = 1; i < sheet.getPhysicalNumberOfRows(); i++)
        {
            Row row = sheet.getRow(i);

            for(int j = 0; j < row.getPhysicalNumberOfCells(); j++)
            {
                Cell cell = row.getCell(j);

                //Some code that uses the data in the cell and puts it in a "donor" object;
            }
        }
        workbook.close();


    }
}

我知道该文件确实存在,但是当我运行该程序时,我收到此错误:

  

线程“main”中的异常java.io.FileNotFoundException:Donors By   姓氏 - 星期四12月15日08/20/40 PST 2016.xls(没有这样的文件或   目录)

     

at java.io.FileInputStream.open0(Native Method)

     

在java.io.FileInputStream.open(FileInputStream.java:195)

     

在java.io.FileInputStream。(FileInputStream.java:138)

     

在Directory.addDonorsFF(Directory.java:115)

     

在Driver.main(Driver.java:24)

我希望有一些简单的东西,这只是我的头脑,因为我是初学者。你有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您说您的文件在桌面上,但您没有完全符合要在文件名中打开的文件。这应该是&#34; C:\ users \ myname \ desktop \ Donors ...&#34; (如果是Windows)。

您输入文件名的方式,它只会查看您运行该文件的应用程序的当前文件夹。