在Android中从Excel导入数据需要帮助吗?

时间:2011-03-18 11:07:25

标签: android excel

我曾使用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)

3 个答案:

答案 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文件夹下,然后从该文件夹中读取该文件。

谢谢