如何在android中创build一个excel文件?

我必须以编程方式创build一个excel文件。 是否有任何API来创build一个Excel文件或其他方式?
编辑于2011年11月7日
我试过例子从这个链接创build一个Excel电子表格创build一个Excel电子表格
我得到NullPointerException在workbook.write(); ,使用这个我可以创buildSD卡上的Excel文件,但是当我打开该Excel文件使用微软办公室2007年我越来越Unable to read file消息
这里的堆栈跟踪, ExcelStudy是我使用WriteExcel类的活动

 W/System.err( 235): java.lang.NullPointerException W/System.err( 235): at jxl.biff.StringHelper.getUnicodeBytes(StringHelper.java:133) W/System.err( 235): at jxl.biff.FontRecord.getData(FontRecord.java:289) W/System.err( 235): at jxl.biff.WritableRecordData.getBytes(WritableRecordData.java:71) W/System.err( 235): at jxl.write.biff.File.write(File.java:132) W/System.err( 235): at jxl.biff.Fonts.write(Fonts.java:110) W/System.err( 235): at jxl.write.biff.WritableWorkbookImpl.write(WritableWorkbookImpl.java:699) W/System.err( 235): at comm.study.code.WriteExcel.write(WriteExcel.java:49) W/System.err( 235): at comm.study.code.ExcelStudy.createExcelFile(ExcelStudy.java:64) W/System.err( 235): at comm.study.code.ExcelStudy$1.onClick(ExcelStudy.java:47) W/System.err( 235): at android.view.View.performClick(View.java:2364) W/System.err( 235): at android.view.View.onTouchEvent(View.java:4179) W/System.err( 235): at android.widget.TextView.onTouchEvent(TextView.java:6541) W/System.err( 235): at android.view.View.dispatchTouchEvent(View.java:3709) W/System.err( 235): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) W/System.err( 235): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) W/System.err( 235): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) W/System.err( 235): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659) W/System.err( 235): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107) W/System.err( 235): at android.app.Activity.dispatchTouchEvent(Activity.java:2061) W/System.err( 235): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643) W/System.err( 235): at android.view.ViewRoot.handleMessage(ViewRoot.java:1691) W/System.err( 235): at android.os.Handler.dispatchMessage(Handler.java:99) W/System.err( 235): at android.os.Looper.loop(Looper.java:123) W/System.err( 235): at android.app.ActivityThread.main(ActivityThread.java:4363) W/System.err( 235): at java.lang.reflect.Method.invokeNative(Native Method) W/System.err( 235): at java.lang.reflect.Method.invoke(Method.java:521) W/System.err( 235): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) W/System.err( 235): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) W/System.err( 235): at dalvik.system.NativeStart.main(Native Method) 

首先你必须去这个链接,从中你可以下载最新的图书馆:

http://www.apache.org/dyn/closer.cgi/poi/release/bin/poi-bin-3.9-20121203.tar.gz

之后,把代码放在onCreate或onResume Mehod上:

 HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet firstSheet = workbook.createSheet("Sheet No: 1"); HSSFSheet secondSheet = workbook.createSheet("Sheet No: 2"); HSSFRow rowA = firstSheet.createRow(0); HSSFCell cellA = rowA.createCell(0); cellA.setCellValue(new HSSFRichTextString("Sheet One")); HSSFRow rowB = secondSheet.createRow(0); HSSFCell cellB = rowB.createCell(0); cellB.setCellValue(new HSSFRichTextString("Sheet two")); FileOutputStream fos = null; try { String str_path = Environment.getExternalStorageDirectory().toString(); File file ; file = new File(str_path, getString(R.string.app_name) + ".xls"); fos = new FileOutputStream(file); workbook.write(fos); } catch (IOException e) { e.printStackTrace(); } finally { if (fos != null) { try { fos.flush(); fos.close(); } catch (IOException e) { e.printStackTrace(); } } Toast.makeText(MainActivity.this, "Excel Sheet Generated", Toast.LENGTH_SHORT).show(); } 

//要查看这个excel文件,在eclipse – > SDCardpath – > Excel.xls – >拉它 – >看到它的文件资源pipe理器。

您可以尝试http://jexcelapi.sourceforge.net/ (请参阅本教程以获取帮助),或者使用Apache POI来写入或从Excel文件读取数据。