I have to create an excel file programatically. Is there is any API to create an excel file or some other ways?
EDIT on 7th Nov 2011
I tried example Create an Excel Spreadsheet from this link Create an Excel spredsheet
and I am getting NullPointerException at workbook.write();
, Using this I can create excel file on SD card, but when I open that excel file using MS office 2007 I am getting Unable to read file
message
Here the stack trace, ExcelStudy
is my activity that uses WriteExcel
class
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)
First You have to go to this link, from which you can download latest library:
http://www.apache.org/dyn/closer.cgi/poi/release/bin/poi-bin-3.9-20121203.tar.gz
After that Put below code on onCreate or 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(); }
// To see this excel file go to File Explorer in eclipse -> SDCard Path -> Excel.xls -> Pull it -> See it.
You could try http://jexcelapi.sourceforge.net/ (see this tutorial for some help), or Apache POI for writing to or reading from Excel files.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With