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);
}