找不到Excel电子表格的Java文件路径

时间:2018-06-29 12:33:28

标签: java excel apache-poi

因此,我尝试打印excel文件的第一行,但由于某种奇怪的原因,当它位于我的桌面上时找不到文件。这是我编写的代码:

public class ReadExcel {
    public static void main(String[] args) throws FileNotFoundException, IOException {
        File fileName=new File(System.getProperty("user.home"), "/Desktop/cc2017.xls");

        HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileName)); //ERROR HERE

        HSSFSheet sheet = workbook.getSheetAt(0);
        HSSFRow row = sheet.getRow(0);

        System.out.println(sheet.getRow(0).toString());
    }
}

这是控制台上显示的消息:

  

线程“ main”中的异常java.io.FileNotFoundException:   \ Desktop \ cc2017.xls(系统找不到指定的路径)         在java.io.FileInputStream.open0(本地方法)         在java.io.FileInputStream.open(未知来源)         在java.io.FileInputStream。(未知源)         在java.io.FileInputStream。(未知源)         在ReadExcel.main(ReadExcel.java:14)

错误所指向的行是:

HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileName)); 

以下是文件存在的证据:

cc2017.xls File]

您可以看到我有一个简单的文件路径,并且该文件是具有数据的excel文件,但是由于某种原因,它未被发现。任何建议,谢谢。

2 个答案:

答案 0 :(得分:1)

您提供路径的方式是,应用程序正在其工作目录中查找,就像您的workspaceE:/Workspace/Your App中一样,应用程序正在E:/Workspace/Your App/Desktop/cc2017.xls中查找文件。 / p>

使用此文件从Deskop获取文件

new File(System.getProperty("user.home"), "/Desktop/cc2017.xls")

更新您的代码

//NPOIFSFileSystem fs = new NPOIFSFileSystem(new File("cc2017.xls"));

        String fileName="/Desktop/cc2017.xls";
        HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(new File(System.getProperty("user.home"), fileName))); //ERROR HERE

        HSSFSheet sheet = workbook.getSheetAt(0);
        HSSFRow row = sheet.getRow(0);

        System.out.println(sheet.getRow(0).toString());
  

要测试的示例程序

public static void main(String... args) {
    String fileName = "/Desktop/cc2017.xls";
    File file = new File(System.getProperty("user.home"), fileName);
    System.out.println("file: " + file);
    System.out.println("file exists: " + file.exists());
    HSSFWorkbook hssfWorkbook = new HSSFWorkbook(new FileInputStream(file));
    HSSFSheet sheet = hssfWorkbook.getSheetAt(0);
    HSSFRow row = sheet.getRow(0);
    System.out.println(row.toString());
}

我在桌面上用相同的名称创建了文件,然后查看我得到的输出

file: C:\Users\CHIRAG GUPTA\Desktop\cc2017.xls
file exists: true
org.apache.poi.hssf.usermodel.HSSFRow@35f983a6

答案 1 :(得分:0)

右键单击文件,然后检查绝对路径。并在您的程序中使用它。 像这样,D:/DavidFiles/testing.xlsx就是这样。

因此,如果您的文件位于桌面上,则路径应类似于C://Users//Desktop/cc2017.xls