我曾使用JExcel
API从Excel导入数据,为了使用JExcel,我编写了以下程序:
public class ReadExcel {
private String inputFile;
public void setInputFile(String inputFile) {
this.inputFile = inputFile;
}
public void read() throws IOException {
File inputWorkbook = new File(inputFile);
File parent_dir = inputWorkbook.getParentFile();
Workbook w;
try {
System.out.println("Parent dir"+parent_dir);
if(parent_dir.exists() == true){
System.out.println("Pardent_dir failed"+"1");
}
else
{
System.out.println("Pardent _ dir not failed"+"2");
}
if(inputWorkbook.exists()== true)
{
System.out.println("File Exists");
}
else
{
System.out.println("File NOt Exists");
System.out.println("Path "+inputWorkbook.getAbsoluteFile());
}
w = Workbook.getWorkbook(inputWorkbook);
// Get the first sheet
Sheet sheet = w.getSheet(0);
// Loop over first 10 column and lines
for (int j = 0; j < sheet.getColumns(); j++) {
for (int i = 0; i < sheet.getRows(); i++) {
Cell cell = sheet.getCell(j, i);
CellType type = cell.getType();
if (cell.getType() == CellType.LABEL) {
System.out.println("I got a label "
+ cell.getContents());
}
if (cell.getType() == CellType.NUMBER) {
System.out.println("I got a number "
+ cell.getContents());
}
}
}
} catch (BiffException e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws IOException {
ReadExcel test = new ReadExcel();
test.setInputFile("c:/temp/Book2.xls");
test.read();
}
}
它工作正常,但是当我在Android中使用它时,我得到了以下异常
03-18 16:33:31.225: INFO / System.out(8693):父 dirc:/ temp 03-18 16:33:31.225: INFO / System.out(8693):Pardent _ dir 没失败2 03-18 16:33:31.235: INFO / System.out(8693):文件NOt存在 03-18 16:33:31.235: INFO / System.out(8693):路径 /c:/temp/Book2.xls 03-18 16:33:31.245: WARN / System.err的(8693): java.io.FileNotFoundException: /c:/temp/Book2.xls 03-18 16:33:31.255: WARN / System.err(8693):at org.apache.harmony.luni.platform.OSFileSystem.open(OSFileSystem.java:244) 03-18 16:33:31.255: WARN / System.err(8693):at java.io.FileInputStream中。(FileInputStream.java:77) 03-18 16:33:31.255: WARN / System.err(8693):at jxl.Workbook.getWorkbook(Workbook.java:213) 03-18 16:33:31.255: WARN / System.err(8693):at jxl.Workbook.getWorkbook(Workbook.java:198) 03-18 16:33:31.255: WARN / System.err(8693):at com.san.test.MyActivity.read(MyActivity.java:93) 03-18 16:33:31.255: WARN / System.err(8693):at com.san.test.MyActivity.displayAlert(MyActivity.java:62)
答案 0 :(得分:3)
test.setInputFile("c:/temp/Book2.xls");
Android是一个基于Linux的系统,因此没有驱动器。使用“c:/”在android中没有任何意义。请阅读有关data storage的文章。您可以使用external storage放置文件并从那里阅读。
答案 1 :(得分:0)
错误日志表示FileNotFoundException
。所以可能你的路径在这里丢失了。您可以将excel文件推送到/mnt/sdcard/
目录中,然后就可以使用:
test.setInputFile("/mnt/sdcard/Book2.xls");
答案 2 :(得分:0)
我修复了我的问题,将Book2.xls文件放在raw文件夹下,然后从该文件夹中读取该文件。
谢谢