




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Apache POI HSSF和XSSF读写EXCEL总结 HSSF是指2007年以前的,XSSF是指2007年版本以上的 这个还是比较好用的,这些总结来自Apache的官方向导的点点滴滴 还有好多没有没有写的,详细的请参考 还有LOG也比较好看 Java代码 1. public class SummaryHSSF 2. 3. public static void main(String args) thr
2、ows IOException 4. /创建Workbook对象(这一个对象代表着对应的一个Excel文件) 5. /HSSFWorkbook表示以xls为后缀名的文件
3、 6. Workbook wb = new HSSFWorkbook(); 7. /获得CreationHelper对象,这个应该是一个帮助类 8. CreationHelper helper
4、= wb.getCreationHelper(); 9. /创建Sheet并给名字(表示Excel的一个Sheet) 10. Sheet sheet1 = wb.createSheet("HSSF_Sheet_1");
5、0; 11. Sheet sheet2 = wb.createSheet("HSSF_Sheet_2"); 12. /Row表示一行Cell表示一列 13. Row row =
6、0;null; 14. Cell cell = null; 15. for(int i=0;i<60;i=i+2) 16. /获得这个sheet的
7、第i行 17. row = sheet1.createRow(i); 18. /设置行长度自动
8、160;19. /row.setHeight(short)500); 20. row.setHeightInPoints(20); 21.
9、160; /row.setZeroHeight(true); 22. for(int j=0;j<25;j+) 23.
10、; /设置每个sheet每一行的宽度,自动,根据需求自行确定 24. sheet1.autoSizeColumn(j+1, true); 25. /
11、创建一个基本的样式 26. CellStyle cellStyle = SummaryHSSF.createStyleCell(wb); 27.
12、160;/获得这一行的每j列 28. cell = row.createCell(j); 29. if(j=0) 30. &
13、#160; /设置文字在单元格里面的位置 31. cellStyle = SummaryH
14、SSF.setCellStyleAlignment(cellStyle, CellStyle.ALIGN_CENTER, CellStyle.VERTICAL_CENTER); 32. /先创建字体样式,并把这个样式加到单元格的字体里面 33.
15、; cellStyle.setFont(createFonts(wb); 34. /把这个样式加到单元格里面 35.
16、160; cell.setCellStyle(cellStyle); 36.
17、0; /给单元格设值 37. cell.setCellValue(true); 38.
18、; else if(j=1) 39. /设置文字在单元格里面的位置 40.
19、 cellStyle = SummaryHSSF.setCellStyleAlignment(cellStyle, CellStyle.ALIGN_CENTER, CellStyle.VERTICAL_CENTER); 41.
20、; /设置这个样式的格式(Format) 42. cellStyle = SummaryHSSF.setCellFormat(helper,cellStyle, "#,#0.0000");
21、160; 43. /先创建字体样式,并把这个样式加到单元格的字体里面 44.
22、60; cellStyle.setFont(createFonts(wb); 45. /把这个样式加到单元格里面
23、0;46. cell.setCellStyle(cellStyle); 47. /给单元格设值
24、 48. cell.setCellValue(new Double(2008.2008); 49. else
25、160;if(j=2) 50. cellStyle = SummaryHSSF.setCellStyleAlignment(cellStyle, CellStyle.ALIGN_CENTER, CellStyle.VERTICAL_CENTER);
26、 51. cellStyle.setFont(createFonts(wb); 52.
27、0; cell.setCellStyle(cellStyle); 53. cell.setCellValue(helper.creat
28、eRichTextString("RichString"+i+j); 54. else if(j=3)
29、;55. cellStyle = SummaryHSSF.setCellStyleAlignment(cellStyle, CellStyle.ALIGN_CENTER, CellStyle.VERTICAL_CENTER); 56.
30、 cellStyle = SummaryHSSF.setCellFormat(helper,cellStyle, "MM-yyyy-dd"); 57.
31、160; cell.setCellStyle(cellStyle); 58. cell.setCellValue(new Date(); 59. &
32、#160; else if(j=24) 60. cellStyle = SummaryHSSF.setCellStyleAlignment(cellStyle, CellStyle.ALIGN_CENTER, CellStyle
33、.VERTICAL_CENTER); 61. cellStyle.setFont(createFonts(wb); 62.
34、0; /设置公式 63. cell.setCellFormula("SUM(E"+(i+1)+":X"+(i+1)+")");
35、0; 64. else 65.
36、160; cellStyle = SummaryHSSF.setCellStyleAlignment(cellStyle, CellStyle.ALIGN_CENTER, CellStyle.VERTICAL_CENTER); 66. &
37、#160; cellStyle = SummaryHSSF.setFillBackgroundColors(cellStyle,IndexedColors.ORANGE.getIndex(),IndexedColors.ORANGE.getIndex(),CellStyle.SOLID_FOREGROUND); 67.
38、0; cell.setCellStyle(cellStyle); 68. cell.setCellValue(1); 69.
39、0; 70. 71. 72. /
40、输出 73. OutputStream os = new (new File("c:/SummaryHSSF.xls"); 74. wb.write(os); 75. o
41、s.close(); 76. 77. /* 78. * 边框 79. * param wb 80. * return 81.
42、 */ 82. public static CellStyle createStyleCell(Workbook wb) 83. CellStyle cellStyle = wb.createCellStyle(); 84.
43、0; /设置一个单元格边框颜色 85. cellStyle.setBorderBottom(CellStyle.BORDER_THIN); 86. cellStyle.setBorderTop(CellStyle.BORDER_THIN); 87.
44、160; cellStyle.setBorderLeft(CellStyle.BORDER_THIN); 88. cellStyle.setBorderRight(CellStyle.BORDER_THIN); 89. /设置一个单元格边框颜色 90.
45、 cellStyle.setRightBorderColor(IndexedColors.BLACK.getIndex(); 91. cellStyle.setLeftBorderColor(IndexedColors.BLACK.getIndex(); 92. cellStyle.set
46、BottomBorderColor(IndexedColors.BLACK.getIndex(); 93. cellStyle.setTopBorderColor(IndexedColors.BLACK.getIndex(); 94. return ce
47、llStyle; 95. 96. /* 97. * 设置文字在单元格里面的位置 98. * CellStyle.ALIGN_CENTER 99. * CellStyle.VERTICAL_CENTER
48、60;100. * param cellStyle 101. * param halign 102. * param valign 103. * return 104. */
49、0; 105. public static CellStyle setCellStyleAlignment(CellStyle cellStyle,short halign,short valign) 106. /设置上下 107. cell
50、Style.setAlignment(CellStyle.ALIGN_CENTER); 108. /设置左右 109. cellStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER); 110.
51、160;return cellStyle; 111. 112. /* 113. * 格式化单元格 114. * 如#,#0.00,m/d/yy去HSSFDataFormat或XSSFDataFormat里面找 115.
52、 * param cellStyle 116. * param fmt 117. * return 118. */ 119. public static CellStyle setCellFormat(CreationHel
53、per helper,CellStyle cellStyle,String fmt) 120. /还可以用其它方法创建format 121. cellStyle.setDataFormat(helper.createDataFormat().getFormat(fmt); 122.
54、; return cellStyle; 123. 124. /* 125. * 前景和背景填充的着色 126. * param cellStyle 127.
55、60; * param bg IndexedColors.ORANGE.getIndex(); 128. * param fg IndexedColors.ORANGE.getIndex(); 129. * param fp CellStyle.SOLID_FOREGROUND 130.
56、60; * return 131. */ 132. public static CellStyle setFillBackgroundColors(CellStyle cellStyle,short bg,short fg,short fp) 133.
57、60;/cellStyle.setFillBackgroundColor(bg); 134. cellStyle.setFillForegroundColor(fg); 135. cellStyle.setFillPattern(fp); 136. &
58、#160;return cellStyle; 137. 138. /* 139. * 设置字体 140. * param wb 141. * return 142.
59、; */ 143. public static Font createFonts(Workbook wb) 144. /创建Font对象 145. Font font = w
60、b.createFont(); 146. /设置字体 147. font.setFontName("黑体"); 148. /着色 149.
61、0; font.setColor(HSSFColor.BLUE.index); 150. /斜体 151. font.setItalic(true); 152. /字体大小 153.
62、 font.setFontHeight(short)300); 154. return font; 155. 156. public class SummaryHSSF public static void main(String args) thro
63、ws IOException /创建Workbook对象(这一个对象代表着对应的一个Excel文件) /HSSFWorkbook表示以xls为后缀名的文件Workbook wb = new HSSFWorkbook();/获得CreationHelper对象,这个应该是一个帮助类CreationHelper helper = wb.getCreationHelper();/创建Sheet并给名字(表示Excel的一个Sheet)Sheet sheet1 = wb.createSheet("HSSF_Sheet_1");Sheet sheet2 = wb.createShee
64、t("HSSF_Sheet_2");/Row表示一行Cell表示一列Row row = null;Cell cell = null;for(int i=0;i<60;i=i+2)/获得这个sheet的第i行row = sheet1.createRow(i);/设置行长度自动/row.setHeight(short)500);row.setHeightInPoints(20);/row.setZeroHeight(true);for(int j=0;j<25;j+)/设置每个sheet每一行的宽度,自动,根据需求自行确定sheet1.autoSizeColumn(
65、j+1, true);/创建一个基本的样式CellStyle cellStyle = SummaryHSSF.createStyleCell(wb);/获得这一行的每j列cell = row.createCell(j);if(j=0)/设置文字在单元格里面的位置cellStyle = SummaryHSSF.setCellStyleAlignment(cellStyle, CellStyle.ALIGN_CENTER, CellStyle.VERTICAL_CENTER);/先创建字体样式,并把这个样式加到单元格的字体里面cellStyle.setFont(createFonts(wb);/把
66、这个样式加到单元格里面cell.setCellStyle(cellStyle);/给单元格设值cell.setCellValue(true);else if(j=1)/设置文字在单元格里面的位置cellStyle = SummaryHSSF.setCellStyleAlignment(cellStyle, CellStyle.ALIGN_CENTER, CellStyle.VERTICAL_CENTER);/设置这个样式的格式(Format)cellStyle = SummaryHSSF.setCellFormat(helper,cellStyle, "#,#0.0000"
67、);/先创建字体样式,并把这个样式加到单元格的字体里面cellStyle.setFont(createFonts(wb);/把这个样式加到单元格里面cell.setCellStyle(cellStyle);/给单元格设值cell.setCellValue(new Double(2008.2008);else if(j=2)cellStyle = SummaryHSSF.setCellStyleAlignment(cellStyle, CellStyle.ALIGN_CENTER, CellStyle.VERTICAL_CENTER);cellStyle.setFont(createFonts(
68、wb);cell.setCellStyle(cellStyle);cell.setCellValue(helper.createRichTextString("RichString"+i+j);else if(j=3)cellStyle = SummaryHSSF.setCellStyleAlignment(cellStyle, CellStyle.ALIGN_CENTER, CellStyle.VERTICAL_CENTER);cellStyle = SummaryHSSF.setCellFormat(helper,cellStyle, "MM-yyyy-dd&
69、quot;);cell.setCellStyle(cellStyle);cell.setCellValue(new Date();else if(j=24)cellStyle = SummaryHSSF.setCellStyleAlignment(cellStyle, CellStyle.ALIGN_CENTER, CellStyle.VERTICAL_CENTER);cellStyle.setFont(createFonts(wb);/设置公式cell.setCellFormula("SUM(E"+(i+1)+":X"+(i+1)+")&qu
70、ot;);elsecellStyle = SummaryHSSF.setCellStyleAlignment(cellStyle, CellStyle.ALIGN_CENTER, CellStyle.VERTICAL_CENTER);cellStyle = SummaryHSSF.setFillBackgroundColors(cellStyle,IndexedColors.ORANGE.getIndex(),IndexedColors.ORANGE.getIndex(),CellStyle.SOLID_FOREGROUND);cell.setCellStyle(cellStyle);cell
71、.setCellValue(1);/输出OutputStream os = new (new File("c:/SummaryHSSF.xls");wb.write(os);os.close();/* * 边框 * param wb * return */public static CellStyle createStyleCell(Workbook wb)CellStyle cellStyle = wb.createCellStyle();/设置一个单元格边框颜色cellStyle.setBorderBottom(CellStyle.BORDER_THIN);cellSt
72、yle.setBorderTop(CellStyle.BORDER_THIN);cellStyle.setBorderLeft(CellStyle.BORDER_THIN);cellStyle.setBorderRight(CellStyle.BORDER_THIN);/设置一个单元格边框颜色cellStyle.setRightBorderColor(IndexedColors.BLACK.getIndex();cellStyle.setLeftBorderColor(IndexedColors.BLACK.getIndex();cellStyle.setBottomBorderColor(I
73、ndexedColors.BLACK.getIndex();cellStyle.setTopBorderColor(IndexedColors.BLACK.getIndex();return cellStyle;/* * 设置文字在单元格里面的位置 * CellStyle.ALIGN_CENTER * CellStyle.VERTICAL_CENTER * param cellStyle * param halign * param valign * return */public static CellStyle setCellStyleAlignment(CellStyle cellSty
74、le,short halign,short valign)/设置上下cellStyle.setAlignment(CellStyle.ALIGN_CENTER);/设置左右cellStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER);return cellStyle;/* * 格式化单元格 * 如#,#0.00,m/d/yy去HSSFDataFormat或XSSFDataFormat里面找 * param cellStyle * param fmt * return */public static CellStyle setCellForm
75、at(CreationHelper helper,CellStyle cellStyle,String fmt)/还可以用其它方法创建formatcellStyle.setDataFormat(helper.createDataFormat().getFormat(fmt);return cellStyle;/* * 前景和背景填充的着色 * param cellStyle * param bg IndexedColors.ORANGE.getIndex(); * param fg IndexedColors.ORANGE.getIndex(); * param fp CellStyle.SO
76、LID_FOREGROUND * return */public static CellStyle setFillBackgroundColors(CellStyle cellStyle,short bg,short fg,short fp)/cellStyle.setFillBackgroundColor(bg);cellStyle.setFillForegroundColor(fg);cellStyle.setFillPattern(fp);return cellStyle;/* * 设置字体 * param wb * return */public static Font createF
77、onts(Workbook wb)/创建Font对象Font font = wb.createFont();/设置字体font.setFontName("黑体");/着色font.setColor(HSSFColor.BLUE.index);/斜体font.setItalic(true);/字体大小font.setFontHeight(short)300);return font;读取Excel文件 Java代码 1. public class ReadExcel 2.
78、 public static void main(String args) throws Exception 3. InputStream is = new (new File("c:/SummaryHSSF.xls"); 4. &
79、#160; /根据输入流创建Workbook对象 5. Workbook wb = WorkbookFactory.create(is); 6. /get到Sheet对象 7. Sheet
80、sheet = wb.getSheetAt(0); 8. /这个必须用接口 9. for(Row row : sheet) 10. for(C
81、ell cell : row) 11. /cell.getCellType是获得cell里面保存的值的type 12. /如Cell.CE
82、LL_TYPE_STRING 13. switch(cell.getCellType() 14. case C
83、ell.CELL_TYPE_BOOLEAN: 15. /得到Boolean对象的方法 16. &
84、#160; System.out.print(cell.getBooleanCellValue()+" "); 17. break;
85、60;18. case Cell.CELL_TYPE_NUMERIC: 19.
86、60; /先看是否是日期格式 20. if(DateUtil.isCellDateFormatted(cell) 21.
87、 /读取日期格式 22.
88、 System.out.print(cell.getDateCellValue()+" "); 23. else 24.
89、60; /读取数字 25.
90、; System.out.print(cell.getNumericCellValue()+" "); 26. 27.
91、60; break; 28. case Cell.CELL_TYPE_FORMULA: 29.
92、160; /读取公式 30. Syst
93、em.out.print(cell.getCellFormula()+" "); 31. break; 32. &
94、#160; case Cell.CELL_TYPE_STRING: 33. /读取String 34.
95、0; System.out.print(cell.getRichStringCellValue().toString()+" "); 35. break; 36.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/ZHHX 004-2024粉苞酸脚杆盆花生产技术规范
- 急救知识培训课程大纲
- 临产呼吸技巧专项训练
- 2025运城师范高等专科学校辅导员考试试题及答案
- 2025西安欧亚学院辅导员考试试题及答案
- 2025辽宁民族师范高等专科学校辅导员考试试题及答案
- 2025苏州城市学院辅导员考试试题及答案
- 2025福建卫生职业技术学院辅导员考试试题及答案
- 四川绵阳中山长虹电器有限公司招聘笔试题库2025
- 室内设计概论
- 2023年南方科技大学机试样题练习
- GB/T 24282-2021塑料聚丙烯中二甲苯可溶物含量的测定
- GB/T 16447-2004烟草及烟草制品调节和测试的大气环境
- 讲义配电房可视化管理标准课件
- 建筑大师伊东丰雄简介及作品集课件
- 《新疆精河县乌兰达坂脉石英矿资源储量核实报告》矿产资源储量
- 管理学原理第六章 指挥课件
- 工序标准工时及产能计算表
- 2023年最新的马季吹牛相声台词
- 幼儿园大班数学口算练习题可打印
- 消防安全知识宣传-主题班会课件(共24张PPT)
评论
0/150
提交评论