【问题标题】:Where shall i store my excel file in my android application?我应该在哪里将我的 excel 文件存储在我的 android 应用程序中?
【发布时间】:2015-02-21 11:55:27
【问题描述】:

我对 android 非常陌生,仍在创建我的第一个应用程序。我正在尝试从静态 excel 文件中读取(数据不会改变)并进行一些计算。我浏览了各种在线资源,但都没有指定将我的 excel 文件存储到哪里(也许它太白痴了)但不幸的是我不知道。

我做了什么:

private static void readExcelFile(Context context, String filename) {

    if (!isExternalStorageAvailable() || isExternalStorageReadOnly()) {
        Log.e(TAG, "Storage not available or read only");
        return;
    }

    try {
        // Creating Input Stream
        File file = new File(context.getExternalFilesDir(null), filename);
        FileInputStream myInput = new FileInputStream(file);

        // Create a POIFSFileSystem object
        POIFSFileSystem myFileSystem = new POIFSFileSystem(myInput);

        // Create a workbook using the File System
        HSSFWorkbook myWorkBook = new HSSFWorkbook(myFileSystem);

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

        /** We now need something to iterate through the cells. **/
        Iterator rowIter = mySheet.rowIterator();

        while (rowIter.hasNext()) {
            HSSFRow myRow = (HSSFRow) rowIter.next();
            Iterator cellIter = myRow.cellIterator();
            while (cellIter.hasNext()) {
                HSSFCell myCell = (HSSFCell) cellIter.next();
                Log.d(TAG, "Cell Value: " + myCell.toString());
                Toast.makeText(context, "cell Value: " + myCell.toString(),
                        Toast.LENGTH_SHORT).show();
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

    return;
}

public static boolean isExternalStorageReadOnly() {
    String extStorageState = Environment.getExternalStorageState();
    if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(extStorageState)) {
        return true;
    }
    return false;
}

public static boolean isExternalStorageAvailable() {
    String extStorageState = Environment.getExternalStorageState();
    if (Environment.MEDIA_MOUNTED.equals(extStorageState)) {
        return true;
    }
    return false;
}

当 onlclick 我将使用 readExcelFile(ScoreActivity.this, "myExcel.xlsx"); 调用时;

谁能给点建议

【问题讨论】:

  • 将文件放入 ExternalStorage 并提供路径。
  • 我不明白把它放在 ExternalStorage 中。我不应该放入 res 文件夹或资产文件夹吗?

标签: android excel


【解决方案1】:

如果您希望您的文件与您的应用程序一起提供,那么您可以将它放在assetsres/raw 文件夹中,然后从那里读取它。否则,您可以将其放在 sdcard 上,但我看到您已经这样做了。

【讨论】:

  • 哦,这就是我想问的。谢谢。我应该选择放入哪个?我不希望我的文件在 SD 卡中。我在开发时无法做到这一点,对吗?我怎样才能更改我的代码,以便我可以放入资产或 res/raw
  • res 目录中,创建一个名为raw 的文件夹并将您的excel 放在那里。这个答案显示了如何从res/raw 读取文件:stackoverflow.com/a/2856501/1271435。如果您放入assets 文件夹,那么您可以这样阅读:stackoverflow.com/questions/9544737/read-file-from-assetsres/rawassets 之间的区别在这里解释:stackoverflow.com/questions/5583608/…。但我认为在这个阶段你不应该费心把它们放在哪里。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-15
  • 2017-05-30
  • 2012-03-09
  • 2011-06-27
  • 1970-01-01
  • 2010-11-10
  • 2018-06-09
相关资源
最近更新 更多