1.使用poi生成文件

  1. package com.mi.entity;
  2.  
  3. import java.util.Date;
  4.  
  5. public class Student {
  6. private int id;
  7. private String name;
  8. private int age;
  9. private Date birth;
  10.  
  11. public Student(int id, String name, int age, Date birth) {
  12. super();
  13. this.id = id;
  14. this.name = name;
  15. this.age = age;
  16. this.birth = birth;
  17. }
  18.  
  19. }

生成excel文件代码

  1. package com.mi.util;
  2.  
  3. import java.io.File;
  4. import java.io.FileOutputStream;
  5. import java.text.SimpleDateFormat;
  6. import java.util.ArrayList;
  7. import java.util.List;
  8.  
  9. import org.apache.poi.hssf.usermodel.HSSFCell;
  10. import org.apache.poi.hssf.usermodel.HSSFCellStyle;
  11. import org.apache.poi.hssf.usermodel.HSSFRow;
  12. import org.apache.poi.hssf.usermodel.HSSFSheet;
  13. import org.apache.poi.hssf.usermodel.HSSFWorkbook;
  14.  
  15. import com.mi.entity.Student;
  16.  
  17. public class CreateSimpleExcelToDisk {
  18.  
  19. /**
  20. * 手工创建一个包含student的list
  21. * @return
  22. * @throws Exception
  23. */
  24. private static List<Student> getStudent() throws Exception {
  25. List<Student> list = new ArrayList<>();
  26. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");
  27. Student user1 = new Student(1, "张三", 16, sdf.parse("1997-03-12"));
  28. Student user2 = new Student(2, "李四", 17, sdf.parse("1996-08-12"));
  29. Student user3 = new Student(3, "王五", 26, sdf.parse("1985-11-12"));
  30. list.add(user1);
  31. list.add(user2);
  32. list.add(user3);
  33.  
  34. return list;
  35. }
  36. public static void main(String[] args) throws Exception {
  37. //第一步,创建一个webbook文件,对应一个excel文件
  38. HSSFWorkbook wb = new HSSFWorkbook();
  39. //第二部,在excel中添加一个sheet工作簿,参数为该工作簿名字,不写为默认;
  40. HSSFSheet sheet = wb.createSheet("学生表1");
  41. //第三部,做sheet中添加表头第0行,注意老版本poi对excel的行数列数有限制short
  42. HSSFRow row = sheet.createRow((int)0);
  43. //第四部,创建单元格表头 设置表头居中
  44. HSSFCellStyle style = wb.createCellStyle();
  45. style.setAlignment(HSSFCellStyle.ALIGN_CENTER);//创建一个居中格式
  46.  
  47. //创建具体盛放数据的单元格,可以考虑把cell抽成共通对象去使用
  48. HSSFCell cell = row.createCell((int) 0);
  49. cell.setCellValue("学号");
  50. cell = row.createCell((int) 1);
  51. cell.setCellValue("姓名");
  52. cell = row.createCell((int) 2);
  53. cell.setCellValue("年龄");
  54. cell = row.createCell((int) 3);
  55. cell.setCellValue("生日");
  56.  
  57. //第五部,写入实体数据 实际应用中这些数据应该是从数据库中得到
  58. List<Student> list = CreateSimpleExcelToDisk.getStudent();
  59. for(int i=0;i<list.size();i++){
  60. //每次新建一行然后在新行中插入list中的数据对象,有点繁琐,也许有更好的封装方法,留待后看
  61. row = sheet.createRow((int)i+1);
  62. row.createCell((int)0).setCellValue(list.get(i).getId());
  63. row.createCell((int)1).setCellValue(list.get(i).getName());
  64. row.createCell((int)2).setCellValue(list.get(i).getAge());
  65. row.createCell((int)3).setCellValue(new SimpleDateFormat("yyyy-mm-dd").format(list.get(i).getBirth()));
  66.  
  67. }
  68.  
  69. //第六部,将文件保存到指定位置
  70. FileOutputStream fout = new FileOutputStream("D:/student.xls");
  71. wb.write(fout);
  72. fout.close();
  73. }
  74. }

效果:

注:.首先下载poi-3.6-20091214.jar,下载地址如下:

http://download.csdn.net/detail/evangel_z/3895051

2.使用JXL生成文件

  1. package com.mi.util;
  2.  
  3. import java.io.File;
  4.  
  5. import jxl.Workbook;
  6. import jxl.format.Border;
  7. import jxl.format.BorderLineStyle;
  8. import jxl.format.Colour;
  9. import jxl.write.Label;
  10. import jxl.write.WritableCellFormat;
  11. import jxl.write.WritableFont;
  12. import jxl.write.WritableSheet;
  13. import jxl.write.WritableWorkbook;
  14.  
  15. public class JxlExcelCreateTool {
  16.  
  17. public static void main(String[] args) throws Exception {
  18. writeExcel();
  19. }
  20.  
  21. public static void writeExcel() throws Exception {
  22. // 第一步创建excel文件,并决定excel的路径和文件名
  23. WritableWorkbook wwb = Workbook.createWorkbook(new File("D:/hello.xls"));
  24.  
  25. // 第二部,创建工作簿,指定该工作簿的名称和位置'
  26. WritableSheet sheet = wwb.createSheet("test sheet1", 0);
  27.  
  28. // 第三部,设置表格指定列的列宽
  29. sheet.setColumnView(0, 14);
  30. sheet.setColumnView(1, 12);
  31. sheet.setColumnView(2, 25);
  32. sheet.setColumnView(3, 20);
  33. sheet.setColumnView(4, 12);
  34. sheet.setColumnView(5, 9);
  35.  
  36. // 第四部,往工作簿中插入数据,设定字体:微软雅黑,24,加粗
  37. // 创建字体对象
  38. WritableFont titleFont = new WritableFont(WritableFont.createFont("微软雅黑"), 24, WritableFont.NO_BOLD);
  39. WritableFont contentFont = new WritableFont(WritableFont.createFont("楷体 _GB2312"), 12, WritableFont.NO_BOLD);
  40. WritableCellFormat titleFormat = new WritableCellFormat(titleFont);
  41. WritableCellFormat contentFormat = new WritableCellFormat(contentFont);
  42. WritableCellFormat contentFormat2 = new WritableCellFormat(contentFont);
  43.  
  44. contentFormat.setBorder(Border.ALL, BorderLineStyle.THIN, Colour.BLACK);
  45. // 设置格式居中对齐
  46. titleFormat.setAlignment(jxl.format.Alignment.CENTRE);
  47. contentFormat.setAlignment(jxl.format.Alignment.CENTRE);
  48. contentFormat2.setAlignment(jxl.format.Alignment.CENTRE);
  49.  
  50. // 将定义好的单元格绑定数据添加到工作簿中
  51. sheet.mergeCells(0, 0, 6, 0); // 合并单元格A-G列共7列
  52. sheet.addCell(new Label(0, 0, "广州XXX大学2009级研究生课程考试成绩册", titleFormat));
  53. sheet.addCell(new Label(0, 1, "课程名称", contentFormat2));
  54. sheet.mergeCells(1, 1, 6, 1); // 合并单元格B-G列共7列
  55. sheet.addCell(new Label(1, 1, "大学数学", contentFormat2));
  56. sheet.addCell(new Label(0, 2, "院所教研室", contentFormat2));
  57. sheet.mergeCells(1, 2, 6, 2); // 合并单元格B-G列共7列
  58. sheet.addCell(new Label(0, 3, "填表人", contentFormat2));
  59. sheet.addCell(new Label(2, 3, "教研室负责人", contentFormat2));
  60.  
  61. String th[] = { "学号", "姓名", "学院", "平时成绩", "期末成绩", "总成绩", "补考成绩" };
  62. for (int i = 0; i < th.length; i++) {
  63. sheet.addCell(new Label(i, 4, th[i], contentFormat2));
  64. }
  65. // 这里的数据可以从数据库里获取,个人建议将这些抽成共通的方法,提供导入数据,用时调用即可
  66. int xh = 200901;
  67. String xm = "王佳佳";
  68. String xy = "XXX信息技术学院";
  69. String space = " ";
  70. int cj = 50;
  71. String bk = "补 80";
  72.  
  73. for (int j = 5; j < 10; j++) {
  74. sheet.addCell(new Label(0, j, "" + xh + j + "", contentFormat));
  75. sheet.addCell(new Label(1, j, xm + j, contentFormat));
  76. sheet.addCell(new Label(2, j, xy, contentFormat));
  77. sheet.addCell(new Label(3, j, space, contentFormat));
  78. sheet.addCell(new Label(4, j, space, contentFormat));
  79. sheet.addCell(new Label(5, j, "" + cj + j + "", contentFormat));
  80. sheet.addCell(new Label(6, j, "" + bk + "", contentFormat));
  81. }
  82.  
  83. // 第五部,写入工作表完毕,关闭流
  84. wwb.write();
  85. wwb.close();
  86. }
  87. }

效果:

Java生成excel导出文件(使用poi+JXL)的更多相关文章

  1. java 生成Excel开门篇

    本随笔的Excel所用的poi jar包(3.17版本)链接: https://pan.baidu.com/s/1gaa3dJueja8IraUDYCSLIQ 提取密码: 9xr7 简单实现:两个类: ...

  2. oracle PL/SQL调用Java生成Excel

    现在有个需求,  要求编写oracle存储过程生成Excel文件到指定目录,  但是oracle自己的API貌似不太给力,  所以只能通过另一种更强大的语言来实现了  ——Java.有一个Java框架 ...

  3. JAVA生成EXCEL模板

    JAVA生成excel模板,支持1.必填字段前加 红色 * 2.定义可选值下拉列表 valList3.定义名称并通过名称设置可选值 refName(名称在sheet2,sheet2自动隐藏)4.支持设 ...

  4. [转]java生成 excel 并导出文件

    原文:https://blog.csdn.net/xunwei0303/article/details/53213130 目前,比较常用的实现Java导入.导出Excel的技术有两种Jakarta P ...

  5. Java操作Excel(使用POI)

    背景说明 以前写过使用 JXL 操作Excel的例子,但JXL对于Excel 2007版本以后的文件(即扩展名为 .xlsx)无法读取,也找不到可以支持的包.所以,有时不得不用 POI 来操作Exce ...

  6. java生成excel

    package test.poi; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; ...

  7. java生成excel报表文件

    此次简单的操作将数据从数据库导出生成excel报表以及将excel数据导入数据库 首先建立数据库的连接池: package jdbc; import java.io.FileInputStream; ...

  8. 两种方式实现java生成Excel

    Web应用中难免会遇到需要将数据导出并生成excel文件的需求.同样,对于本博客中的总结,也是建立在为了完成这样的一个需求,才开始去了解其实现形式,并且顺利完成需求的开发,先将实现过程总结于此.本博文 ...

  9. JAVA实现Excel的读写--poi

    上一篇为大家介绍了通过xls.jar的方式生成Excel的方法,本篇就为大家再介绍一下通过poi方式实现Excel文件的读写操作,内容很简单,代码注释很清晰. 1.生成Excel文件: import ...

随机推荐

  1. response.setCharacterEncoding方法未定义

    代码一搬家,就报这错.之前几次稀里糊涂搞好忘记总结. 问题原因: 项目中用到Tomcat和weblogic.jar包,先引入weblogic.jar包时,HttpServletResponse下的se ...

  2. 更改Magento的base url

    Magento的Base URL是用于访问商店页面的URL,您也可以为单独一个store view设置一个Base Url.在改这项值之前请确保您的域名已经指向了网站所在服务器的IP,DNS解析完成后 ...

  3. 模糊搜索UISearchBar

    #import "Search_ViewController.h" @interface Search_ViewController ()<UITableViewDataSo ...

  4. DHT(Distributed Hash Table) Translator

    DHT(Distributed Hash Table) Translator What is DHT? DHT is the real core of how GlusterFS aggregates ...

  5. 【指标测试】影响IOPS的几个重要因素

    1. 读写方式 顺序读写的IOPS要比随机读写的IOPS高.100%顺序读写来讲,顺序读要高于顺序写.100%随机读写来讲,随机读要高于随机写.小块读写的IOPS要比大块读写高.需要根据实际的应用程序 ...

  6. 移动端公共css样式

    @media screen and ( min-width: 319px){html{ font-size: 100px;}}@media screen and ( min-width: 359px) ...

  7. Python-S13-day2-之购物车

    Python-S13-day2 需求: 1.写一个购物小程序,用户开始先输入自己的工资,然后可以不断的买东西并加入购物车,如果钱不够了提示余额不足,用户中途可以选择查看自己购物车里面的商品,以及余额, ...

  8. Web:AJAX的网络请求

    要访问的json文件内容如下图: 1.通过XMLHttpRequest方式发送请求 (1)前提创建XMLHttpRequest对象: //发送请求 var request; if (window.XM ...

  9. Android 使用shape来画线

    注意:Android3.0以上系统开始支持硬件加速特性hardwareAccelerated,默认是启用的.当你的某个activity用到了“虚线”效果的时候,必须要设置AndroidManifest ...

  10. C# 值类型和引用类型及参数传递

    值类型和引用类型: C#数据类型分为两大类:值类型和引用类型. 值类型数据主要有:结构体struct,枚举体enum,布尔型bool,浮点型,整型. 引用类型数据主要有:数组,字符串,接口,委托,类. ...