Java 在Excel工作表中编写内容

Java 在Excel工作表中编写内容,java,android,jxl,Java,Android,Jxl,我正在用android开发一个应用程序,我需要从存储在SD卡中的excel文件读写。为此,我使用jxl库。但是我在文件操作中遇到了一些错误 ext = Environment.getExternalStorageDirectory().getAbsolutePath()+"/hai/dynamic.xls"; setOutputFile(ext); try { write(); } catch (WriteException e) { // TODO Auto-generated

我正在用android开发一个应用程序,我需要从存储在SD卡中的excel文件读写。为此,我使用jxl库。但是我在文件操作中遇到了一些错误

ext = Environment.getExternalStorageDirectory().getAbsolutePath()+"/hai/dynamic.xls";
setOutputFile(ext);
try {
    write();
} catch (WriteException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
}
public void setOutputFile(String inputFile) {
    this.inputfile = inputFile;
    }

public void write() throws IOException, WriteException {
        File file = new File(inputfile);
        WorkbookSettings wbSettings = new WorkbookSettings();

        wbSettings.setLocale(new Locale("en", "EN"));

        WritableWorkbook workbook = Workbook.createWorkbook(file, wbSettings);
        workbook.createSheet("Report", 0);
        WritableSheet excelSheet = workbook.getSheet(0);
        createLabel(excelSheet);
        createContent(excelSheet);

        workbook.write();
        workbook.close();
    }
然后我在logcat中得到以下错误

01-09 12:43:12.824: W/System.err(12321):     java.io.FileNotFoundException:/mnt/sdcard/hai/dynamic.xls (Permission denied)
01-09 12:43:12.884: W/System.err(12321):    at  org.apache.harmony.luni.platform.OSFileSystem.open(Native Method)
01-09 12:43:12.884: W/System.err(12321):    at dalvik.system.BlockGuard$WrappedFileSystem.open(BlockGuard.java:232)
01-09 12:43:12.904: W/System.err(12321):    at java.io.FileOutputStream.<init>(FileOutputStream.java:94)
01-09 12:43:12.904: W/System.err(12321):    at java.io.FileOutputStream.<init>(FileOutputStream.java:66)
01-09 12:43:12.904: W/System.err(12321):    at jxl.Workbook.createWorkbook(Workbook.java:301)
01-09 12:43:12.904: W/System.err(12321):    at com.fis.excel.WriteAcivity.write(WriteAcivity.java:59)
01-09 12:43:12.904: W/System.err(12321):    at com.fis.excel.WriteAcivity.onCreate(WriteAcivity.java:40)
01-09 12:43:12.904: W/System.err(12321):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
01-09 12:43:12.904: W/System.err(12321):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
01-09 12:43:12.916: W/System.err(12321):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
01-09 12:43:12.916: W/System.err(12321):    at android.app.ActivityThread.access$1500(ActivityThread.java:117)
01-09 12:43:12.924: W/System.err(12321):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
01-09 12:43:12.924: W/System.err(12321):    at android.os.Handler.dispatchMessage(Handler.java:99)
01-09 12:43:12.924: W/System.err(12321):    at android.os.Looper.loop(Looper.java:123)
01-09 12:43:12.924: W/System.err(12321):    at android.app.ActivityThread.main(ActivityThread.java:3683)
01-09 12:43:12.924: W/System.err(12321):    at java.lang.reflect.Method.invokeNative(Native Method)
01-09 12:43:12.944: W/System.err(12321):    at java.lang.reflect.Method.invoke(Method.java:507)
01-09 12:43:12.944: W/System.err(12321):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
01-09 12:43:12.944: W/System.err(12321):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
01-09 12:43:12.944: W/System.err(12321):    at dalvik.system.NativeStart.main(Native Method)
01-09 12:43:12.824:W/System.err(12321):java.io.FileNotFoundException:/mnt/sdcard/hai/dynamic.xls(权限被拒绝)
01-09 12:43:12.884:W/System.err(12321):位于org.apache.harmony.luni.platform.OSFileSystem.open(本机方法)
01-09 12:43:12.884:W/System.err(12321):位于dalvik.System.BlockGuard$WrappedFileSystem.open(BlockGuard.java:232)
01-09 12:43:12.904:W/System.err(12321):位于java.io.FileOutputStream。(FileOutputStream.java:94)
01-09 12:43:12.904:W/System.err(12321):位于java.io.FileOutputStream。(FileOutputStream.java:66)
01-09 12:43:12.904:W/System.err(12321):位于jxl.Workbook.createWorkbook(Workbook.java:301)
01-09 12:43:12.904:W/System.err(12321):位于com.fis.excel.writeActivity.write(writeActivity.java:59)
01-09 12:43:12.904:W/System.err(12321):位于com.fis.excel.writeActivity.onCreate(writeActivity.java:40)
01-09 12:43:12.904:W/System.err(12321):位于android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
01-09 12:43:12.904:W/System.err(12321):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
01-09 12:43:12.916:W/System.err(12321):位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
01-09 12:43:12.916:W/System.err(12321):在android.app.ActivityThread.access$1500(ActivityThread.java:117)
01-09 12:43:12.924:W/System.err(12321):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
01-09 12:43:12.924:W/System.err(12321):位于android.os.Handler.dispatchMessage(Handler.java:99)
01-09 12:43:12.924:W/System.err(12321):位于android.os.Looper.loop(Looper.java:123)
01-09 12:43:12.924:W/System.err(12321):位于android.app.ActivityThread.main(ActivityThread.java:3683)
01-09 12:43:12.924:W/System.err(12321):位于java.lang.reflect.Method.invokenactive(本机方法)
01-09 12:43:12.944:W/System.err(12321):位于java.lang.reflect.Method.invoke(Method.java:507)
01-09 12:43:12.944:W/System.err(12321):位于com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
01-09 12:43:12.944:W/System.err(12321):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
01-09 12:43:12.944:W/System.err(12321):在dalvik.System.NativeStart.main(本机方法)

//在清单中添加使用权限

WRITE_EXTERNAL_STORAGE

Allows an application to write to external storage


<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
写入外部存储器
允许应用程序写入外部存储器

检查路径,并打印此…System.out.println(“文件为::”+ext);