0

SDカードの既存のスプレッドシートにデータを追加するアプリケーションを作成しようとしています。

書き込み可能なワークブックを作成しようとすると問題が発生します。

outputWorkbook = Workbook.createWorkbook(outputWorkbookFile,inputWorkbook);

EclipseのLogcatでエラーが発生します:

04-05 13:29:54.809: W/System.err(32653): java.io.FileNotFoundException: /mnt/sdcard/Dev/Spreadsheets/in.xls (Permission denied)

入力ファイルを読み取ってセルの内容を取得できます。書き込み可能なブックをインスタンス化することも、入力ブックをインスタンス化することもできますが、両方をインスタンス化することはできません。

private void doStuff() {
    File directory = Environment.getExternalStorageDirectory();
    inputWorkbookFile = new File(directory + "/Dev/Spreadsheets/in.xls");
    outputWorkbookFile = new File(directory + "/Dev/Spreadsheets/out.xls");

    try {

        // Put data into an array for easier iteration
        double data[];
        data = new double[7];
        data[0] = income;
        data[1] = diesel;
        data[2] = carHire;
        data[3] = radio;
        data[5] = 0;
        data[6] = itemCost;

        inputWorkbook = Workbook.getWorkbook(inputWorkbookFile);
        Log.e("Testing", "Opened workbook");

        if (isExternalStorageAvailable() && isExternalStorageReadable()) {
            Log.e("Testing", "storage readable and available");
            outputWorkbook = Workbook.createWorkbook(outputWorkbookFile,
                    inputWorkbook);
        }
4

1 に答える 1

0

AndroidManifestのuses-permissionタグで許可を得て宣言する必要がありますandroid.permission.WRITE_EXTERNAL_STORAGE

于 2012-04-05T13:07:40.113 に答える