poi导出,需要的poi jar包

步骤一、两个工具类:

1、ExcelUtil.java

  1. package util;
  2.  
  3. import java.awt.Color;
  4. import java.io.FileNotFoundException;
  5. import java.io.FileOutputStream;
  6. import java.io.IOException;
  7.  
  8. import org.apache.poi.hssf.usermodel.HSSFCell;
  9. import org.apache.poi.hssf.usermodel.HSSFCellStyle;
  10. import org.apache.poi.hssf.usermodel.HSSFFont;
  11. import org.apache.poi.hssf.usermodel.HSSFPalette;
  12. import org.apache.poi.hssf.usermodel.HSSFRow;
  13. import org.apache.poi.hssf.usermodel.HSSFSheet;
  14. import org.apache.poi.hssf.usermodel.HSSFWorkbook;
  15. import org.apache.poi.ss.usermodel.CellStyle;
  16.  
  17. public class ExcelUtil {
  18.  
  19. public static void creatExcel(Object[][] datas,String table) throws FileNotFoundException, IOException{
  20. HSSFWorkbook wb = new HSSFWorkbook();
  21. HSSFSheet sheet = wb.createSheet("table"); //创建table工作薄
  22. //Object[][] datas = {{"区域产品销售额","",""},{"区域", "总销售额(万元)", "总利润(万元)简单的表格"}, {"江苏省" , 9045, 2256}, {"广东省", 3000, 690}};
  23. HSSFRow row;
  24. HSSFCell cell;
  25.  
  26. short colorIndex = 10;
  27. HSSFPalette palette = wb.getCustomPalette();
  28. Color rgb = Color.GREEN;
  29. short bgIndex = colorIndex ++;
  30. palette.setColorAtIndex(bgIndex, (byte) rgb.getRed(), (byte) rgb.getGreen(), (byte) rgb.getBlue());
  31. short bdIndex = colorIndex ++;
  32. rgb = Color.BLACK;
  33. palette.setColorAtIndex(bdIndex, (byte) rgb.getRed(), (byte) rgb.getGreen(), (byte) rgb.getBlue());
  34.  
  35. for(int i = 0; i < datas.length; i++) {
  36. row = sheet.createRow(i);//创建表格行
  37. for(int j = 0; j < datas[i].length; j++) {
  38. cell = row.createCell(j);//根据表格行创建单元格
  39. cell.setCellValue(String.valueOf(datas[i][j]));
  40.  
  41. HSSFCellStyle cellStyle = wb.createCellStyle();
  42. if(i == 0 || i == 1) { //设置第一,二行背景颜色
  43. cellStyle.setFillForegroundColor(bgIndex); //bgIndex 背景颜色下标值
  44. cellStyle.setFillPattern(CellStyle.SOLID_FOREGROUND);
  45. }
  46.  
  47. cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
  48. cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
  49. cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);
  50. cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);
  51. //bdIndex 边框颜色下标值
  52. cellStyle.setBottomBorderColor(bdIndex);
  53. cellStyle.setLeftBorderColor(bdIndex);
  54. cellStyle.setRightBorderColor(bdIndex);
  55. cellStyle.setTopBorderColor(bdIndex);
  56.  
  57. cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
  58. cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
  59.  
  60. if(i == datas.length - 1 && j == datas[0].length - 1) { //设置最后一行,最后一列的字体,即表格中最后一个字
  61. //单元格文本可设置字体大小、颜色、斜体、粗体、下划线等。
  62. HSSFFont font = wb.createFont();
  63. font.setItalic(true);
  64. font.setUnderline(HSSFFont.U_SINGLE);
  65. font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
  66. font.setFontHeightInPoints((short)14);
  67. cellStyle.setFont(font);
  68. }
  69. cell.setCellStyle(cellStyle);
  70. }
  71. }
  72.  
  73. //加入图片
  74. /* byte[] bt = FileUtils.readFileToByteArray(new File("E:/yes.png"));
  75. int pictureIdx = wb.addPicture(bt,HSSFWorkbook.PICTURE_TYPE_PNG);
  76. CreationHelper helper = wb.getCreationHelper();
  77. Drawing drawing = sheet.createDrawingPatriarch();
  78. ClientAnchor anchor = helper.createClientAnchor();
  79. //anchor.setDx1(MSExcelUtil.pixel2WidthUnits(60));
  80. //anchor.setDy1(MSExcelUtil.pixel2WidthUnits(60));
  81. anchor.setCol1(0);
  82. anchor.setRow1(4);
  83. anchor.setCol2(3);
  84. anchor.setRow2(25);
  85. drawing.createPicture(anchor, pictureIdx);*/
  86.  
  87. //合并单元格
  88. /*CellRangeAddress region = new CellRangeAddress(0, // first row
  89. 0, // last row
  90. 0, // first column
  91. 2 // last column
  92. );
  93. sheet.addMergedRegion(region);*/
  94.  
  95. //创建表格之后设置行高与列宽
  96. for(int i = 0; i < datas.length; i++) {
  97. row = sheet.getRow(i);
  98. row.setHeightInPoints(30);
  99. }
  100. for(int j = 0; j < datas[0].length; j++) {
  101. sheet.setColumnWidth(j, MSExcelUtil.pixel2WidthUnits(160));
  102. }
  103. wb.write(new FileOutputStream(table));
  104.  
  105. }
  106.  
  107. }

2、MSExcel.java

  1. package util;
  2. public class MSExcelUtil {
  3.  
  4. public static final short EXCEL_COLUMN_WIDTH_FACTOR = 256;
  5. public static final int UNIT_OFFSET_LENGTH = 7;
  6. public static final int[] UNIT_OFFSET_MAP = new int[] { 0, 36, 73, 109, 146, 182, 219 };
  7.  
  8. /**
  9. * pixel units to excel width units(units of 1/256th of a character width)
  10. *
  11. * @param pxs
  12. * @return
  13. */
  14. public static short pixel2WidthUnits(int pxs) {
  15. short widthUnits = (short) (EXCEL_COLUMN_WIDTH_FACTOR * (pxs / UNIT_OFFSET_LENGTH));
  16. widthUnits += UNIT_OFFSET_MAP[(pxs % UNIT_OFFSET_LENGTH)];
  17. return widthUnits;
  18. }
  19.  
  20. /**
  21. * excel width units(units of 1/256th of a character width) to pixel units
  22. *
  23. * @param widthUnits
  24. * @return
  25. */
  26. public static int widthUnits2Pixel(int widthUnits) {
  27. int pixels = (widthUnits / EXCEL_COLUMN_WIDTH_FACTOR) * UNIT_OFFSET_LENGTH;
  28. int offsetWidthUnits = widthUnits % EXCEL_COLUMN_WIDTH_FACTOR;
  29. pixels += Math.round(offsetWidthUnits
  30. / ((float) EXCEL_COLUMN_WIDTH_FACTOR / UNIT_OFFSET_LENGTH));
  31.  
  32. return pixels;
  33. }
  34. }

步骤二、action中调用工具类代码:

  1. public void daochu() throws FileNotFoundException, IOException {
  2. User user = (User) ActionContext.getContext().getSession().get("user");
  3. List<Attendance> list = new ArrayList<Attendance>();
  4. if (user != null) {
  5. Server server = serverService.getEntity(user.getServer().getId());
  6. String[] str = order.split(",");
  7. for (int i = 0; i < str.length; i++) {
  8. List<Department> dapartmentList = departmentService
  9. .find(str[i],server.getName());
  10. for (int j = 0; j < dapartmentList.size(); j++) {
  11. List<Attendance> list0 = attendanceService.findByDT(dapartmentList.get(j).getId(), date1, date2);
  12. if(list0.size() > 0){
  13. for(Attendance a : list0){
  14. list.add(a);
  15. }
  16. }
  17. }
  18. }
  19. }
  20. HttpServletResponse response = ServletActionContext.getResponse();
  21. response.setContentType("text/html;charset=utf-8");
  22. JSONObject json = new JSONObject();
  23. //List<Attendance> list = attendanceService.getScrollData().getResultlist();
  24. Object[][] datas = new Object[list.size()+1][4]; //第一个'3':数据量(行) 第二个'3':字段个数(列)
  25. datas[0][0] = "部门";
  26. datas[0][1] = "职务";
  27. datas[0][2] = "姓名";
  28. datas[0][3] = "异常显示";
  29. for(int i=0;i<list.size();i++){
  30. for(int j=0;j<4;j++){
  31. datas[i+1][0] = list.get(i).getDepartment().getName();
  32. datas[i+1][1] = list.get(i).getUser().getPost().getName();
  33. datas[i+1][2] = list.get(i).getUser().getUsername();
  34. datas[i+1][3] = list.get(i).getState();
  35. }
  36. }
  37. String table = "e:/考勤.xls";
  38. ExcelUtil.creatExcel(datas, table);
  39. json.put("path", table);
  40. response.getWriter().print(json.toString());
  41. }

步骤三、前台代码:

  1. jQuery("#search_button2").click(function() {
  2. var obj = document.getElementsByName("Department_choice");
  3. var s1 = '';
  4. for (var i = 0; i < obj.length; i++) {
  5. if (obj[i].checked)
  6. s1 += obj[i].value + ',';
  7. }
  8. var year = document.getElementById("year").value;
  9. var month = document.getElementById("month").value;
  10. var day = document.getElementById("day").value;
  11. var s2 = year + '-' + month + '-' + day;
  12. var year1 = document.getElementById("year1").value;
  13. var month1 = document.getElementById("month1").value;
  14. var day1 = document.getElementById("day1").value;
  15. var s3 = year1 + '-' + month1 + '-' + day1;
  16. jQuery.post("AttendanceAction_daochu.do",{
  17. order:s1,
  18. date1:s2,
  19. date2:s3,
  20. }, function(data, status) {
  21. alert("导出成功,请查看"+data.path);
  22. },"json");
  23.  
  24. });

导出(Excel格式)的更多相关文章

  1. Powerdesigner 导出Excel格式数据字典 导出Excel格式文件

    版权声明:本文为博主原创文章,转载请注明出处; 网上我也看到了很多的Powerdesigner 导出方法,因为Powerdesigner 提供了部分VBA功能,所以让我用代码导出Excel格式文件得以 ...

  2. 使用PHPExcel导入导出excel格式文件

    使用PHPExcel导入导出excel格式文件  作者:zccst  因为导出使用较多,以下是导出实现过程.  第一步,将PHPExcel的源码拷贝到项目的lib下  文件包含:PHPExcel.ph ...

  3. 将页面中表格数据导出excel格式的文件(vue)

    近期由于项目需要,需要将页面中的表格数据导出excel格式的文件,折腾了许久,在网上各种百度,虽然资料不少,但是大都不全,踩了许多坑,总算是皇天不负有心人,最后圆满解决了. 1.安装相关依赖(npm安 ...

  4. 获取一个表中的字段总数(mysql) Navicat如何导出Excel格式表结构 获取某个库中的一个表中的所有字段和数据类型

    如何获取一个表中的字段总数 1.function show columns from 表明: 结果 : 2.functiuon select count(*) from INFORMATION_SCH ...

  5. Html Table用JS导出excel格式问题 导出EXCEL后单元格里的000412341234会变成412341234 7-14 会变成 2018-7-14(7月14) 自定义格式 web利用table表格生成excel格式问题 js导出excel增加表头、mso-number-format定义数据格式 数字输出格式转换 mso-number-format:"\@"

    Html Table用JS导出excel格式问题 我在网上找的JS把HTML Tabel导出成EXCEL.但是如果Table里的数字内容为0开的的导成Excel后会自动删除0,我想以text的格式写入 ...

  6. 插件 ExcelWrite 导出Excel格式数据/获取图层

    使用ExcelWrite 插件可以导出Excel格式的数据: ExcelFile端口接 文件数据路径 最后面的是文件名,不用写格式 如果存储树形数据,需要 勾选 List To Row 选项: 附: ...

  7. [转发]导出Excel 格式 mso-number-format

    应用中经常会遇到要从系统或数据库中导出数据平面文件,一般是导出到txt,csv或excel.txt和csv一般用在系统间的数据交换,而 excel一般有较好的显示效果,可以按照一定的模板导出,导出就不 ...

  8. 导出Excel格式数据

    /** * 导出规则统计数据 excel格式 * @param bill * @return */ public String exportExamsignupExamnoExcel ( String ...

  9. GridView导出excel格式问题

    在导出的点击事件中,代码如下: //指定导出对应单元格为文本样式 string style = @"<style> .test { vnd.ms-excel.numberform ...

  10. mysql数据导出excel格式+乱码解决

    1:导出的SQL命令,只需要加上“FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' ” ...

随机推荐

  1. 利用scrapy和MongoDB来开发一个爬虫

    今天我们利用scrapy框架来抓取Stack Overflow里面最新的问题(),并且将这些问题保存到MongoDb当中,直接提供给客户进行查询. 安装 在进行今天的任务之前我们需要安装二个框架,分别 ...

  2. Github上的Watch和 Star的区别

    Github 推出了新的 Notification 系统,更改了原有的 Watch 机制,为代码库增加了 Star 操作.Notification 将接收 Watching 代码库的动态,包括:* I ...

  3. 【原】作为前端需要了解的B/S架构

    其实B/S架构是属于后台方面的东西,不过作为一个前端,也是需要了解一下滴 C/S架构简要介绍 在了解什么是B/S架构之前,我们有必要了解一下什么是C/S架构: C/S架构是第一种比较早的软件架构,主要 ...

  4. 各个浏览器显示版本(IE,火狐)

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  5. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' heade

    XMLHttpRequest cannot load http://10.164.153.37:8050/WebService/WebService.asmx/wsGetStreetData. Res ...

  6. Oracle 查询语句(where,order by ,like,in,distinct)

    select * from production;alter table production add productionprice number(7,2); UPDATE production s ...

  7. 关于li元素嵌套的事儿

    今天阅读<锋利的jQuery>第二版2.6节案例研究部分的时候,遇到一个问题. <ul> <li class="a1"><a href=& ...

  8. MySQL主从复制原理及配置详细过程以及主从复制集群自动化部署的实现

    一.复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重 ...

  9. nodeJS爬虫---慕课网

    源代码一(爬取html源码) //引入http模块var http = require('http');//引入url地址var url = 'http://www.imooc.com/learn/2 ...

  10. express-session使用理解

    本篇主要段落翻译来自https://github.com/expressjs/session 客户端与服务会使用一个Sessionid的Cookie值来进行客户端和服务器端会话的匹配,这个Cookie ...