Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to create an excel file in android?

Tags:

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) 
like image 929
Sandy Avatar asked Nov 04 '11 07:11

Sandy


2 Answers

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.

like image 74
user2368799 Avatar answered Oct 05 '22 22:10

user2368799


You could try http://jexcelapi.sourceforge.net/ (see this tutorial for some help), or Apache POI for writing to or reading from Excel files.

like image 45
Amos M. Carpenter Avatar answered Oct 05 '22 22:10

Amos M. Carpenter