34. System.out.print(cell.getRichStringCellValue().toString()+\
35. break; 36. } 37. }
38. System.out.println(\39. } 40. } 41.}
还有一种传统的读法 Java代码
1. Sheet sheet = wb.getSheetAt(0);
2. for (Iterator rit = sheet.rowIterator(); rit.hasNext(); ) {
3. Row row = (Row)rit.next();
4. for (Iterator cit = row.cellIterator(); cit.hasNext(); ) {
5. Cell cell = (Cell)cit.next(); 6. // Do something here 7. } 8. }
9. HSSFSheet sheet = wb.getSheetAt(0);
10. for (Iterator
11. HSSFRow row = rit.next();
12. for (Iterator
13. HSSFCell cell = cit.next(); 14. // Do something here 15. } 16. }
1.jxl 生成报表
Java代码
1. package excel; 2.
3. import java.io.FileOutputStream; 4. import java.io.OutputStream;
5. import java.text.SimpleDateFormat; 6. import java.util.Date; 7.
8. import jxl.Workbook;
9. import jxl.format.Alignment; 10.import jxl.format.Border;
11.import jxl.format.BorderLineStyle; 12.import jxl.format.CellFormat; 13.import jxl.write.Label;
14.import jxl.write.WritableCellFormat; 15.import jxl.write.WritableFont; 16.import jxl.write.WritableSheet; 17.import jxl.write.WritableWorkbook;
18./*********************************************************************** 19. *
20. * jxlCreate.java
21. * @copyright Copyright: 2009-2012 22. * @creator 周辉
23. * @create-time Mar 9, 2010 1:35:19 PM 24. * @revision $Id: *
25. ***********************************************************************/
26.public class jxlCreate { 27.
28. /**
29. * @param args 30. */
31. public static void main(String[] args) { 32. // 准备设置excel工作表的标题
33. String[] title = {\编号\产品名称\产品价格\产品数量\生产日期\产地\是否出口\34. try {
35. // 获得开始时间
36. long start = System.currentTimeMillis();
37. // 输出的excel的路径
38. String filePath = \39. // 创建Excel工作薄 40. WritableWorkbook wwb;
41. // 新建立一个jxl文件,即在C盘下生成test.xls 42. OutputStream os = new FileOutputStream(filePath);
43. wwb=Workbook.createWorkbook(os);
44. // 添加第一个工作表并设置第一个Sheet的名字 45. WritableSheet sheet = wwb.createSheet(\产品清单\
46. Label label;
47. for(int i=0;i
48. // Label(x,y,z)其中x代表单元格的第x+1列,第y+1行, 单元格的内容是y
49. // 在Label对象的子对象中指明单元格的位置和内容
50. label = new Label(i,0,title[i]); 51. // 将定义好的单元格添加到工作表中 52. sheet.addCell(label); 53. }
54. // 下面是填充数据 55. /*
56. * 保存数字到单元格,需要使用jxl.write.Number 57. * 必须使用其完整路径,否则会出现错误 58. * */
59. // 填充产品编号
60. jxl.write.Number number = new jxl.write.Number(0,1,20071001);
61. sheet.addCell(number); 62. // 填充产品名称
63. label = new Label(1,1,\金鸽瓜子\64. sheet.addCell(label); 65. /*
66. * 定义对于显示金额的公共格式 67. * jxl会自动实现四舍五入
68. * 例如 2.456会被格式化为2.46,2.454会被格式化为2.45
69. * */
70. jxl.write.NumberFormat nf = new jxl.write.NumberFormat(\
71. jxl.write.WritableCellFormat wcf = new jxl.write.WritableCellFormat(nf);
72. // 填充产品价格
73. jxl.write.Number nb = new jxl.write.Number(2,1,2.45,wcf);
74. sheet.addCell(nb); 75. // 填充产品数量
76. jxl.write.Number numb = new jxl.write.Number(3,1,200);
77. sheet.addCell(numb); 78. /*
79. * 定义显示日期的公共格式 80. * 如:yyyy-MM-dd hh:mm 81. * */
82. SimpleDateFormat sdf = new SimpleDateFormat(\M-dd\
83. String newdate = sdf.format(new Date()); 84. // 填充出产日期
85. label = new Label(4,1,newdate); 86. sheet.addCell(label); 87. // 填充产地
88. label = new Label(5,1,\陕西西安\89. sheet.addCell(label); 90. /*
91. * 显示布尔值 92. * */
93. jxl.write.Boolean bool = new jxl.write.Boolean(6,1,true);
94. sheet.addCell(bool); 95. /*
96. * 合并单元格 97. * 通过
writablesheet.mergeCells(int x,int y,int m,int n);来实现的 98. * 表示将从第x+1列,y+1行到m+1列,n+1行合并 99. *
100. * */
101. sheet.mergeCells(0,3,2,3);
102. label = new Label(0,3,\合并了三个单元格\
103. sheet.addCell(label); 104. /* 105. *
106. * 定义公共字体格式
107. * 通过获取一个字体的样式来作为模板
108. * 首先通过web.getSheet(0)获得第一个sheet 109. * 然后取得第一个sheet的第二列,第一行也就是\产品名称\的字体
110. * */
111. CellFormat cf = wwb.getSheet(0).getCell(1, 0).getCellFormat();
112. WritableCellFormat wc = new WritableCellFormat();
113. // 设置居中
114. wc.setAlignment(Alignment.CENTRE); 115. // 设置边框线
116. wc.setBorder(Border.ALL, BorderLineStyle.THIN);
117. // 设置单元格的背景颜色
118. wc.setBackground(jxl.format.Colour.RED); 119. label = new Label(1,5,\字体\120. sheet.addCell(label); 121.
122. // 设置字体
123. jxl.write.WritableFont wfont = new jxl.write.WritableFont(WritableFont.createFont(\隶书\
124. WritableCellFormat font = new WritableCellFormat(wfont);
125. label = new Label(2,6,\隶书\126. sheet.addCell(label); 127.
128. // 写入数据 129. wwb.write(); 130. // 关闭文件 131. wwb.close();
132. long end = System.currentTimeMillis(); 133. System.out.println(\完成该操作共用的时间是:\
134. } catch (Exception e) {
135. System.out.println(\出现异常---\136. e.printStackTrace(); 137. } 138.
139. } 140. 141. } 2.POI 生成
Java代码