因此,我尝试打印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));
以下是文件存在的证据:
您可以看到我有一个简单的文件路径,并且该文件是具有数据的excel文件,但是由于某种原因,它未被发现。任何建议,谢谢。
答案 0 :(得分:1)
您提供路径的方式是,应用程序正在其工作目录中查找,就像您的workspace
在E:/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