2011-08-19 52 views
0

我正在使用以下代碼創建.xls-文件。我有參考http://www.vogella.de/articles/JavaExcel/article.htmlhttp://www.andykhan.com/jexcelapi/tutorial.html請建議解決方案或替代方法來做到這一點。下面創建電子表格(xls)文件時出現問題

是代碼

String filename = "SpreadsheetTest.xls"; 
File root = Environment.getExternalStorageDirectory(); 

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

WritableWorkbook workbook = Workbook.createWorkbook(new File(root, filename), wbSettings); 
WritableSheet sheet = workbook.createSheet("First Sheet", 0); 

Label label = new Label(0, 2, "A label record"); 
sheet.addCell(label); 

Number number = new Number(3, 4, 3.1459); 
sheet.addCell(number); 

workbook.write(); 
workbook.close(); 

上面的代碼是給NullPointerException

08-19 14:34:46.354: ERROR/AndroidRuntime(3298): Uncaught handler: thread main exiting due to uncaught exception 
08-19 14:34:46.362: ERROR/AndroidRuntime(3298): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.spreadsheet/com.spreadsheet.MainScreen}: java.lang.NullPointerException 
08-19 14:34:46.362: ERROR/AndroidRuntime(3298):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496) 
08-19 14:34:46.362: ERROR/AndroidRuntime(3298):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512) 
08-19 14:34:46.362: ERROR/AndroidRuntime(3298):  at android.app.ActivityThread.access$2200(ActivityThread.java:119) 
08-19 14:34:46.362: ERROR/AndroidRuntime(3298):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863) 
08-19 14:34:46.362: ERROR/AndroidRuntime(3298):  at android.os.Handler.dispatchMessage(Handler.java:99) 
08-19 14:34:46.362: ERROR/AndroidRuntime(3298):  at android.os.Looper.loop(Looper.java:123) 
08-19 14:34:46.362: ERROR/AndroidRuntime(3298):  at android.app.ActivityThread.main(ActivityThread.java:4363) 
08-19 14:34:46.362: ERROR/AndroidRuntime(3298):  at java.lang.reflect.Method.invokeNative(Native Method) 
08-19 14:34:46.362: ERROR/AndroidRuntime(3298):  at java.lang.reflect.Method.invoke(Method.java:521) 
08-19 14:34:46.362: ERROR/AndroidRuntime(3298):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
08-19 14:34:46.362: ERROR/AndroidRuntime(3298):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
08-19 14:34:46.362: ERROR/AndroidRuntime(3298):  at dalvik.system.NativeStart.main(Native Method) 
08-19 14:34:46.362: ERROR/AndroidRuntime(3298): Caused by: java.lang.NullPointerException 
08-19 14:34:46.362: ERROR/AndroidRuntime(3298):  at jxl.biff.StringHelper.getUnicodeBytes(StringHelper.java:141) 
08-19 14:34:46.362: ERROR/AndroidRuntime(3298):  at jxl.biff.FontRecord.getData(FontRecord.java:289) 
08-19 14:34:46.362: ERROR/AndroidRuntime(3298):  at jxl.biff.WritableRecordData.getBytes(WritableRecordData.java:71) 
08-19 14:34:46.362: ERROR/AndroidRuntime(3298):  at jxl.write.biff.File.write(File.java:147) 
08-19 14:34:46.362: ERROR/AndroidRuntime(3298):  at jxl.biff.Fonts.write(Fonts.java:110) 
08-19 14:34:46.362: ERROR/AndroidRuntime(3298):  at jxl.write.biff.WritableWorkbookImpl.write(WritableWorkbookImpl.java:821) 
08-19 14:34:46.362: ERROR/AndroidRuntime(3298):  at com.spreadsheet.MainScreen.onCreate(MainScreen.java:59) 
08-19 14:34:46.362: ERROR/AndroidRuntime(3298):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
08-19 14:34:46.362: ERROR/AndroidRuntime(3298):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459) 
08-19 14:34:46.362: ERROR/AndroidRuntime(3298):  ... 11 more 

請指引我來解決這個問題。請給我建議任何替代方式來生成xls文件(如果有的話)。

回答

0

你見過this blog post

它使用Apache POI讀/於Android寫的Excel。

+2

雖然這可能會在理論上回答這個問題,[這將是更可取的](http://meta.stackexchange.com/q/8259)在這裏包括答案的基本部分,並提供參考鏈接。 – Spontifixus

1

添加用戶權限以寫入外部存儲。

+0

這應該是一條評論。 –

0

我有同樣的錯誤。對我來說,這是因爲我沒有在模擬器中爲SD卡指定任何內存。

一旦我使用設備管理器編輯模擬器,文件就被創建了。