精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-03-21
上一篇文章 Java操作Excel之理解JXL--读取Excel 说到如何用JXL读取Excel文件, 第一步:选择模板文件: 第二步:通过模板得到一个可写的Workbook:
在生成Excel报表的时候还会遇到一种需求就是数据的格式问题,我们可能希望数值型单元格以某种格式显示,而字符串型单元格以另 一种格式显示。这些可以通过WritableFont、NumberFormat、WritableCellFormat等实现,下例给单元格A1、A2添加了不同的格式。 java 代码
还有不要忘记关闭WritableWorkbook和Workbook以释放资源: 最后就可以你需要的方式从输出流targetFile中取得Excel,比如直接生成文件存本地,输出到客户端浏览器等。 如果还有其他需求,按照这种思路,再参照APIDoc相信可以很容易的解决。 至此,Java操作Excel之理解JXL就写完了。下一篇会介绍如何用Jakarta POI操作Excel。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-03-31
|
|
返回顶楼 | |
发表时间:2007-05-24
最近也在为出报表郁闷,格式要求很严格
看了你的通过读取模板写入动态数据生成excel 我试着测试了一下 结果excel完全没任何反映, 希望你指点指点 谢谢 public class JxlExcel{ public static void main(String[] args) { try { String url="D:/template/test.xls"; //第一步:选择模板文件 通过模板得到一个可写的Workbook: Workbook wb = Workbook.getWorkbook(new File(url)); //这样定义这个输出流对象。第二个参数代表了要读取的模板。 ByteArrayOutputStream targetFile = new ByteArrayOutputStream(); WritableWorkbook wwb = Workbook.createWorkbook(targetFile, wb); //第一个参数是一个输出流对象,比如可以 //第三步:选择模板的Sheet: WritableSheet wws = wwb.getSheet(0); //第四步:选择单元格,写入动态值,根据单元格的不同类型转换成相应类型的单元格: /* Label A1 = (Label)wws.getWritableCell(2,0); A1.setString("单元格内容");*/ Label C1 = new Label(2,0,"单元格内容"); wws.addCell(C1); wwb.close(); wb.close(); System.out.println("盒封面.xls"); } catch (Exception e) { e.printStackTrace(); } } } |
|
返回顶楼 | |
发表时间:2007-05-24
学习来了,感谢楼主。
|
|
返回顶楼 | |
发表时间:2007-05-24
用jxls吧.比poi要好用.
|
|
返回顶楼 | |
发表时间:2007-05-24
http://www.iteye.com/topic/75431
|
|
返回顶楼 | |
发表时间:2007-05-24
在java中用jxl操作EXCEL
Workbook book = Workbook.getWorkbook(new File("D:\\project.xls")); Sheet sheet = book.getSheet(0); Cell cell=sheet.getCell(0,4); String result=cell.getContents(); System.out.println("########################### " +result); 为什么在程序执行到Sheet sheet = book.getSheet(0);时,会抛NullPointerException呢??? 读入的EXCEL文件的路径是正确的,D盘下确有此文件呀。 并且相同的代码,换个EXCEL文件就没有问题,可是我要读的是project.xls文件呀。 为什么会这样呢? |
|
返回顶楼 | |
发表时间:2007-05-27
jwen 写道 最近也在为出报表郁闷,格式要求很严格
看了你的通过读取模板写入动态数据生成excel 我试着测试了一下 结果excel完全没任何反映, 希望你指点指点 谢谢 public class JxlExcel{ public static void main(String[] args) { try { String url="D:/template/test.xls"; //第一步:选择模板文件 通过模板得到一个可写的Workbook: Workbook wb = Workbook.getWorkbook(new File(url)); //这样定义这个输出流对象。第二个参数代表了要读取的模板。 ByteArrayOutputStream targetFile = new ByteArrayOutputStream(); WritableWorkbook wwb = Workbook.createWorkbook(targetFile, wb); //第一个参数是一个输出流对象,比如可以 //第三步:选择模板的Sheet: WritableSheet wws = wwb.getSheet(0); //第四步:选择单元格,写入动态值,根据单元格的不同类型转换成相应类型的单元格: /* Label A1 = (Label)wws.getWritableCell(2,0); A1.setString("单元格内容");*/ Label C1 = new Label(2,0,"单元格内容"); wws.addCell(C1); wwb.close(); wb.close(); System.out.println("盒封面.xls"); } catch (Exception e) { e.printStackTrace(); } } } 如下: public class JxlExcel{ public static void main(String[] args) { try { String url="c:/test.xls"; Workbook wb = Workbook.getWorkbook(new File(url)); ByteArrayOutputStream targetFile = new ByteArrayOutputStream(); WritableWorkbook wwb = Workbook.createWorkbook(targetFile, wb); WritableSheet wws = wwb.getSheet(0); Label C1 = new Label(2,0,"单元格内容"); wws.addCell(C1); wwb.write(); wwb.close(); wb.close(); FileOutputStream fos = new FileOutputStream("c:/test1.xls"); targetFile.writeTo(fos); targetFile.close(); System.out.println("盒封面.xls"); } catch (Exception e) { e.printStackTrace(); } } } |
|
返回顶楼 | |
发表时间:2007-05-27
liht80 写道 在java中用jxl操作EXCEL
Workbook book = Workbook.getWorkbook(new File("D:\\project.xls")); Sheet sheet = book.getSheet(0); Cell cell=sheet.getCell(0,4); String result=cell.getContents(); System.out.println("########################### " +result); 为什么在程序执行到Sheet sheet = book.getSheet(0);时,会抛NullPointerException呢??? 读入的EXCEL文件的路径是正确的,D盘下确有此文件呀。 并且相同的代码,换个EXCEL文件就没有问题,可是我要读的是project.xls文件呀。 为什么会这样呢? Sheet sheet = book.getSheet(0);抛NullPointerException的可能性不大, Workbook book = Workbook.getWorkbook(new File("D:\\project.xls"));倒是有可能抛IOException或者jxl.read.biff.BiffException。 除非你在Workbook book = Workbook.getWorkbook(new File("D:\\project.xls")); 周围try catch或者在其后sheet=null; |
|
返回顶楼 | |
发表时间:2007-05-28
jwen 写道 最近也在为出报表郁闷,格式要求很严格
看了你的通过读取模板写入动态数据生成excel 我试着测试了一下 结果excel完全没任何反映, 希望你指点指点 谢谢 public class JxlExcel{ public static void main(String[] args) { try { String url="D:/template/test.xls"; //第一步:选择模板文件 通过模板得到一个可写的Workbook: Workbook wb = Workbook.getWorkbook(new File(url)); //这样定义这个输出流对象。第二个参数代表了要读取的模板。 ByteArrayOutputStream targetFile = new ByteArrayOutputStream(); WritableWorkbook wwb = Workbook.createWorkbook(targetFile, wb); //第一个参数是一个输出流对象,比如可以 //第三步:选择模板的Sheet: WritableSheet wws = wwb.getSheet(0); //第四步:选择单元格,写入动态值,根据单元格的不同类型转换成相应类型的单元格: /* Label A1 = (Label)wws.getWritableCell(2,0); A1.setString("单元格内容");*/ Label C1 = new Label(2,0,"单元格内容"); wws.addCell(C1); wwb.close(); wb.close(); System.out.println("盒封面.xls"); } catch (Exception e) { e.printStackTrace(); } } } 楼主介绍的方法只是把数据写入到了流中,并没有真正写入文件中,当然不会有反应了。 很早之前写过一篇介绍jxl的文章: http://www.iteye.com/topic/55844?page=1 不过今天从楼主文章中看到如何读取模板,不错的 |
|
返回顶楼 | |
浏览 23799 次