如何在android中创建一个excel文件? [英] How to create an excel file in android?

查看:150
本文介绍了如何在android中创建一个excel文件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我必须以编程方式创建一个excel文件。是否有任何API来创建Excel文件或其他方法?

编辑于2011年11月7日

我尝试过的示例从此创建一个Excel电子表格链接创建Excel spredsheet
并且我得到NullPointerException为 workbook.write(); ,使用这个我可以在SD卡上创建excel文件,但是当我使用MS Office 2007打开excel文件时,我得到无法读取文件消息

这里的堆栈跟踪, ExcelStudy 是我的活动,使用 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):在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):在android.view.View.performClick(View.java:2364)
W /System.err(235):在android.view.View.onTouchEvent(View.java:4179)
W / System.err(235):在android.widget.TextView.onTouchEvent(TextView.java:6541 )
W / System.err(235):在android.view.View.dispatchTouchEvent(View.java:3709)
W / System.err(235):在android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:884)
W / System.err(235):在android.view.ViewGroup.dispatchTouchEvent(ViewGrou p.java:884)
W / System.err(235):在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):在com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow。 java:1107)
W / System.err(235):在android.app.Activity.dispatchTouchEvent(Activity.java:2061)
W / System.err(235):在com.android。 internal.policy.impl.PhoneWindow $ DecorView.dispatchTouchEvent(PhoneWindow.java:1643)
W / System.err(235):在android.view.ViewRoot.handleMessage(ViewRoot.java:1691)
W / System.err(235):在android.os.Handler.dispatchMessage(Handler.java:99)
W / System.err(235):在android.os.Looper.loop(Looper.java: 123)
W / System.err(235):在android.app.ActivityThread.main(ActivityThread.java:4363)
W / System.err(235):在java.lang.reflect。 Method.invokeNative(Native Meth od)
W / System.err(235):在java.lang.reflect.Method.invoke(Method.java:521)
W / System.err(235):在com.android。 internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:860)
W / System.err(235):在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 / nearest.cgi / poi / release / bin / poi-bin-3.9-20121203.tar.gz



之后将以下代码放在onCreate或onResume Mehod:

  HSSFWorkbook工作簿=新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 = 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中的文件资源管理器 - > SDCard路径 - > Excel.xls - >拉它 - >看到。


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.

这篇关于如何在android中创建一个excel文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆