77范文网 - 专业文章范例文档资料分享平台

jxl操作excel(4)

来源:网络收集 时间:2019-02-15 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

1. package excel; 2.

3. import java.io.FileOutputStream; 4. import java.text.SimpleDateFormat; 5. import java.util.Date; 6.

7. import org.apache.poi.hssf.usermodel.HSSFWorkbook; 8. import org.apache.poi.ss.usermodel.Cell;

9. import org.apache.poi.ss.usermodel.CellStyle; 10.import org.apache.poi.ss.usermodel.DataFormat; 11.import org.apache.poi.ss.usermodel.Row; 12.import org.apache.poi.ss.usermodel.Sheet; 13.import org.apache.poi.ss.usermodel.Workbook; 14.import org.apache.poi.ss.util.CellRangeAddress; 15. 16.

17./*********************************************************************** 18. *

19. * poiCreate.java

20. * @copyright Copyright: 2009-2012 21. * @creator 周辉

22. * @create-time Mar 9, 2010 2:27:52 PM 23. * @revision $Id: *

24. ***********************************************************************/

25.public class poiCreate { 26.

27. /**

28. * @param args 29. */

30. public static void main(String[] args) throws Exception { 31. //创建一个EXCEL

32. Workbook wb = new HSSFWorkbook();

33. DataFormat format = wb.createDataFormat(); 34. CellStyle style; 35. //创建一个SHEET

36. Sheet sheet1 = wb.createSheet(\产品清单\

37. String[] title = {\编号\产品名称\产品价格\产品数量\生产日期\产地\是否出口\38. int i=0; 39. //创建一行

40. Row row = sheet1.createRow((short)0); 41. //填充标题

42. for (String s:title){

43. Cell cell = row.createCell(i); 44. cell.setCellValue(s); 45. i++; 46. }

47. Row row1 = sheet1.createRow((short)1); 48. //下面是填充数据

49. row1.createCell(0).setCellValue(20071001); 50. row1.createCell(1).setCellValue(\金鸽瓜子\51. //创建一个单元格子

52. Cell cell2=row1.createCell(2); 53. // 填充产品价格

54. cell2.setCellValue(2.45); 55. style = wb.createCellStyle();

56. style.setDataFormat(format.getFormat(\57. //设定样式

58. cell2.setCellStyle(style); 59. // 填充产品数量

60. row1.createCell(3).setCellValue(200); 61. /*

62. * 定义显示日期的公共格式 63. * 如:yyyy-MM-dd hh:mm 64. * */

65. SimpleDateFormat sdf = new SimpleDateFormat(\\

66. String newdate = sdf.format(new Date()); 67. // 填充出产日期

68. row1.createCell(4).setCellValue(newdate); 69. row1.createCell(5).setCellValue(\陕西西安\70. /*

71. * 显示布尔值 72. * */

73. row1.createCell(6).setCellValue(true); 74. /*

75. * 合并单元格 76. * 通过

writablesheet.mergeCells(int x,int y,int m,int n);来实现的 77. * 表示将first row, last row,first column,last column 78. * 79. * */

80. Row row2 = sheet1.createRow((short) 2); 81. Cell cell3 = row2.createCell((short) 0); 82. cell3.setCellValue(\合并了三个单元格\

83. sheet1.addMergedRegion(new CellRangeAddress(2,2,0,2));

84.

85. FileOutputStream fileOut = new FileOutputStream(\st.xls\

86. wb.write(fileOut); 87. fileOut.close(); 88. 89.

90. } 91. 92.}

上面代码2中方式生成 2张报表,涉及到基本生成报表中的几种单元格类型。 POI 用的JAR poi-3.6-20091214.jar jxl 用到的jar jxl-2.6.jar 2 种方式都相对比较好用,个人推荐使用POI (apache的项目) 相关参考资料可以去官方网站查看

http://poi.apache.org/spreadsheet/quick-guide.html

近期看了下POI,写了一些小例子,结合反射技术对EXCEL的导入到出进行了简单封装,主要实现功能如下:

(1)导入EXCEL文档到List>中

(2)导出List>类型数据到EXCEL中 (3)导出List类型的数据到EXCEL中

其中第(3)个方法使用了相应的格式规范加反射,具体使用时只要配置好List中对象的取值方法名,可以实现很大程度上的复用

注:支持对象的深度导出,即List中存放对象的取值方法返回值是另一个对象的引用,最终需要的值在这个引用对象中

多余的话就不说了,上代码(Demo工程放到了文章后面的附件中): POI封装类(主类)MyPOI.java Java代码

1. package com.lightgjc1.poi; 2.

3. import java.io.File;

4. import java.io.FileInputStream; 5. import java.io.FileOutputStream; 6. import java.io.IOException;

7. import java.lang.reflect.Method; 8. import java.util.ArrayList; 9. import java.util.HashMap; 10.import java.util.List; 11.import java.util.Map; 12.

13.import org.apache.poi.hssf.usermodel.HSSFCell; 14.import org.apache.poi.hssf.usermodel.HSSFRow; 15.import org.apache.poi.hssf.usermodel.HSSFSheet; 16.import org.apache.poi.hssf.usermodel.HSSFWorkbook; 17.

18.public class MyPOI { 19. 20. /**

21. * 导入Excel文件

22. * 内容以List>的方式存放 23. * @param excelFile : Excel文件对象

24. * @param strKeys : Map的Key列表,Value为相应的sheet一行中各列的值 25. * @return 26. */

27. public static List> importExcelToMap(File excelFile, String strKeys) {

28. String[] strKey = strKeys.split(\

29. List> listMap = new ArrayList>(); 30.

31. int i = 1; 32. try {

33. HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(excelFile));

34. HSSFSheet sheet = workbook.getSheetAt(0); 35. while (true) {

36. HSSFRow row = sheet.getRow(i); 37. if (row == null) 38. break; 39.

40. Map map = new HashMap();

41. for(int keyIndex = 0; keyIndex < strKey.length; keyIndex++){

42. map.put(strKey[keyIndex], row.getCell(keyIndex).getStringCellValue()); 43. }

44. listMap.add(map); 45. 46. i++; 47. }

48. } catch (Exception e) { 49. e.printStackTrace(); 50.

51. System.out.println(\导入中断,错误位置:第\行数据!\52. } 53.

54. return listMap; 55. } 56. 57. /**

58. * 导出Excel文件

59. * 数据源的数据格式为List> 60. * @param objList : Excel数据源

61. * @param title : 新建Sheet的名称 62. * @param strTitle : Sheet各列的标题(第一行各列的名称) 63. * @param strBody : Sheet各列的取值方法名(各列的值在objClass中get方法名称)

64. * @param outputPath: Excel文档保存路径 65. */

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库jxl操作excel(4)在线全文阅读。

jxl操作excel(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/465763.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: