导出(Excel格式)
poi导出,需要的poi jar包:
步骤一、两个工具类:
1、ExcelUtil.java
- package util;
- import java.awt.Color;
- import java.io.FileNotFoundException;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import org.apache.poi.hssf.usermodel.HSSFCell;
- import org.apache.poi.hssf.usermodel.HSSFCellStyle;
- import org.apache.poi.hssf.usermodel.HSSFFont;
- import org.apache.poi.hssf.usermodel.HSSFPalette;
- import org.apache.poi.hssf.usermodel.HSSFRow;
- import org.apache.poi.hssf.usermodel.HSSFSheet;
- import org.apache.poi.hssf.usermodel.HSSFWorkbook;
- import org.apache.poi.ss.usermodel.CellStyle;
- public class ExcelUtil {
- public static void creatExcel(Object[][] datas,String table) throws FileNotFoundException, IOException{
- HSSFWorkbook wb = new HSSFWorkbook();
- HSSFSheet sheet = wb.createSheet("table"); //创建table工作薄
- //Object[][] datas = {{"区域产品销售额","",""},{"区域", "总销售额(万元)", "总利润(万元)简单的表格"}, {"江苏省" , 9045, 2256}, {"广东省", 3000, 690}};
- HSSFRow row;
- HSSFCell cell;
- short colorIndex = 10;
- HSSFPalette palette = wb.getCustomPalette();
- Color rgb = Color.GREEN;
- short bgIndex = colorIndex ++;
- palette.setColorAtIndex(bgIndex, (byte) rgb.getRed(), (byte) rgb.getGreen(), (byte) rgb.getBlue());
- short bdIndex = colorIndex ++;
- rgb = Color.BLACK;
- palette.setColorAtIndex(bdIndex, (byte) rgb.getRed(), (byte) rgb.getGreen(), (byte) rgb.getBlue());
- for(int i = 0; i < datas.length; i++) {
- row = sheet.createRow(i);//创建表格行
- for(int j = 0; j < datas[i].length; j++) {
- cell = row.createCell(j);//根据表格行创建单元格
- cell.setCellValue(String.valueOf(datas[i][j]));
- HSSFCellStyle cellStyle = wb.createCellStyle();
- if(i == 0 || i == 1) { //设置第一,二行背景颜色
- cellStyle.setFillForegroundColor(bgIndex); //bgIndex 背景颜色下标值
- cellStyle.setFillPattern(CellStyle.SOLID_FOREGROUND);
- }
- cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
- cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
- cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);
- cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);
- //bdIndex 边框颜色下标值
- cellStyle.setBottomBorderColor(bdIndex);
- cellStyle.setLeftBorderColor(bdIndex);
- cellStyle.setRightBorderColor(bdIndex);
- cellStyle.setTopBorderColor(bdIndex);
- cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
- cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
- if(i == datas.length - 1 && j == datas[0].length - 1) { //设置最后一行,最后一列的字体,即表格中最后一个字
- //单元格文本可设置字体大小、颜色、斜体、粗体、下划线等。
- HSSFFont font = wb.createFont();
- font.setItalic(true);
- font.setUnderline(HSSFFont.U_SINGLE);
- font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
- font.setFontHeightInPoints((short)14);
- cellStyle.setFont(font);
- }
- cell.setCellStyle(cellStyle);
- }
- }
- //加入图片
- /* byte[] bt = FileUtils.readFileToByteArray(new File("E:/yes.png"));
- int pictureIdx = wb.addPicture(bt,HSSFWorkbook.PICTURE_TYPE_PNG);
- CreationHelper helper = wb.getCreationHelper();
- Drawing drawing = sheet.createDrawingPatriarch();
- ClientAnchor anchor = helper.createClientAnchor();
- //anchor.setDx1(MSExcelUtil.pixel2WidthUnits(60));
- //anchor.setDy1(MSExcelUtil.pixel2WidthUnits(60));
- anchor.setCol1(0);
- anchor.setRow1(4);
- anchor.setCol2(3);
- anchor.setRow2(25);
- drawing.createPicture(anchor, pictureIdx);*/
- //合并单元格
- /*CellRangeAddress region = new CellRangeAddress(0, // first row
- 0, // last row
- 0, // first column
- 2 // last column
- );
- sheet.addMergedRegion(region);*/
- //创建表格之后设置行高与列宽
- for(int i = 0; i < datas.length; i++) {
- row = sheet.getRow(i);
- row.setHeightInPoints(30);
- }
- for(int j = 0; j < datas[0].length; j++) {
- sheet.setColumnWidth(j, MSExcelUtil.pixel2WidthUnits(160));
- }
- wb.write(new FileOutputStream(table));
- }
- }
2、MSExcel.java
- package util;
- public class MSExcelUtil {
- public static final short EXCEL_COLUMN_WIDTH_FACTOR = 256;
- public static final int UNIT_OFFSET_LENGTH = 7;
- public static final int[] UNIT_OFFSET_MAP = new int[] { 0, 36, 73, 109, 146, 182, 219 };
- /**
- * pixel units to excel width units(units of 1/256th of a character width)
- *
- * @param pxs
- * @return
- */
- public static short pixel2WidthUnits(int pxs) {
- short widthUnits = (short) (EXCEL_COLUMN_WIDTH_FACTOR * (pxs / UNIT_OFFSET_LENGTH));
- widthUnits += UNIT_OFFSET_MAP[(pxs % UNIT_OFFSET_LENGTH)];
- return widthUnits;
- }
- /**
- * excel width units(units of 1/256th of a character width) to pixel units
- *
- * @param widthUnits
- * @return
- */
- public static int widthUnits2Pixel(int widthUnits) {
- int pixels = (widthUnits / EXCEL_COLUMN_WIDTH_FACTOR) * UNIT_OFFSET_LENGTH;
- int offsetWidthUnits = widthUnits % EXCEL_COLUMN_WIDTH_FACTOR;
- pixels += Math.round(offsetWidthUnits
- / ((float) EXCEL_COLUMN_WIDTH_FACTOR / UNIT_OFFSET_LENGTH));
- return pixels;
- }
- }
步骤二、action中调用工具类代码:
- public void daochu() throws FileNotFoundException, IOException {
- User user = (User) ActionContext.getContext().getSession().get("user");
- List<Attendance> list = new ArrayList<Attendance>();
- if (user != null) {
- Server server = serverService.getEntity(user.getServer().getId());
- String[] str = order.split(",");
- for (int i = 0; i < str.length; i++) {
- List<Department> dapartmentList = departmentService
- .find(str[i],server.getName());
- for (int j = 0; j < dapartmentList.size(); j++) {
- List<Attendance> list0 = attendanceService.findByDT(dapartmentList.get(j).getId(), date1, date2);
- if(list0.size() > 0){
- for(Attendance a : list0){
- list.add(a);
- }
- }
- }
- }
- }
- HttpServletResponse response = ServletActionContext.getResponse();
- response.setContentType("text/html;charset=utf-8");
- JSONObject json = new JSONObject();
- //List<Attendance> list = attendanceService.getScrollData().getResultlist();
- Object[][] datas = new Object[list.size()+1][4]; //第一个'3':数据量(行) 第二个'3':字段个数(列)
- datas[0][0] = "部门";
- datas[0][1] = "职务";
- datas[0][2] = "姓名";
- datas[0][3] = "异常显示";
- for(int i=0;i<list.size();i++){
- for(int j=0;j<4;j++){
- datas[i+1][0] = list.get(i).getDepartment().getName();
- datas[i+1][1] = list.get(i).getUser().getPost().getName();
- datas[i+1][2] = list.get(i).getUser().getUsername();
- datas[i+1][3] = list.get(i).getState();
- }
- }
- String table = "e:/考勤.xls";
- ExcelUtil.creatExcel(datas, table);
- json.put("path", table);
- response.getWriter().print(json.toString());
- }
步骤三、前台代码:
- jQuery("#search_button2").click(function() {
- var obj = document.getElementsByName("Department_choice");
- var s1 = '';
- for (var i = 0; i < obj.length; i++) {
- if (obj[i].checked)
- s1 += obj[i].value + ',';
- }
- var year = document.getElementById("year").value;
- var month = document.getElementById("month").value;
- var day = document.getElementById("day").value;
- var s2 = year + '-' + month + '-' + day;
- var year1 = document.getElementById("year1").value;
- var month1 = document.getElementById("month1").value;
- var day1 = document.getElementById("day1").value;
- var s3 = year1 + '-' + month1 + '-' + day1;
- jQuery.post("AttendanceAction_daochu.do",{
- order:s1,
- date1:s2,
- date2:s3,
- }, function(data, status) {
- alert("导出成功,请查看"+data.path);
- },"json");
- });
导出(Excel格式)的更多相关文章
- Powerdesigner 导出Excel格式数据字典 导出Excel格式文件
版权声明:本文为博主原创文章,转载请注明出处; 网上我也看到了很多的Powerdesigner 导出方法,因为Powerdesigner 提供了部分VBA功能,所以让我用代码导出Excel格式文件得以 ...
- 使用PHPExcel导入导出excel格式文件
使用PHPExcel导入导出excel格式文件 作者:zccst 因为导出使用较多,以下是导出实现过程. 第一步,将PHPExcel的源码拷贝到项目的lib下 文件包含:PHPExcel.ph ...
- 将页面中表格数据导出excel格式的文件(vue)
近期由于项目需要,需要将页面中的表格数据导出excel格式的文件,折腾了许久,在网上各种百度,虽然资料不少,但是大都不全,踩了许多坑,总算是皇天不负有心人,最后圆满解决了. 1.安装相关依赖(npm安 ...
- 获取一个表中的字段总数(mysql) Navicat如何导出Excel格式表结构 获取某个库中的一个表中的所有字段和数据类型
如何获取一个表中的字段总数 1.function show columns from 表明: 结果 : 2.functiuon select count(*) from INFORMATION_SCH ...
- 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的格式写入 ...
- 插件 ExcelWrite 导出Excel格式数据/获取图层
使用ExcelWrite 插件可以导出Excel格式的数据: ExcelFile端口接 文件数据路径 最后面的是文件名,不用写格式 如果存储树形数据,需要 勾选 List To Row 选项: 附: ...
- [转发]导出Excel 格式 mso-number-format
应用中经常会遇到要从系统或数据库中导出数据平面文件,一般是导出到txt,csv或excel.txt和csv一般用在系统间的数据交换,而 excel一般有较好的显示效果,可以按照一定的模板导出,导出就不 ...
- 导出Excel格式数据
/** * 导出规则统计数据 excel格式 * @param bill * @return */ public String exportExamsignupExamnoExcel ( String ...
- GridView导出excel格式问题
在导出的点击事件中,代码如下: //指定导出对应单元格为文本样式 string style = @"<style> .test { vnd.ms-excel.numberform ...
- mysql数据导出excel格式+乱码解决
1:导出的SQL命令,只需要加上“FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' ” ...
随机推荐
- 利用scrapy和MongoDB来开发一个爬虫
今天我们利用scrapy框架来抓取Stack Overflow里面最新的问题(),并且将这些问题保存到MongoDb当中,直接提供给客户进行查询. 安装 在进行今天的任务之前我们需要安装二个框架,分别 ...
- Github上的Watch和 Star的区别
Github 推出了新的 Notification 系统,更改了原有的 Watch 机制,为代码库增加了 Star 操作.Notification 将接收 Watching 代码库的动态,包括:* I ...
- 【原】作为前端需要了解的B/S架构
其实B/S架构是属于后台方面的东西,不过作为一个前端,也是需要了解一下滴 C/S架构简要介绍 在了解什么是B/S架构之前,我们有必要了解一下什么是C/S架构: C/S架构是第一种比较早的软件架构,主要 ...
- 各个浏览器显示版本(IE,火狐)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 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 ...
- Oracle 查询语句(where,order by ,like,in,distinct)
select * from production;alter table production add productionprice number(7,2); UPDATE production s ...
- 关于li元素嵌套的事儿
今天阅读<锋利的jQuery>第二版2.6节案例研究部分的时候,遇到一个问题. <ul> <li class="a1"><a href=& ...
- MySQL主从复制原理及配置详细过程以及主从复制集群自动化部署的实现
一.复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重 ...
- nodeJS爬虫---慕课网
源代码一(爬取html源码) //引入http模块var http = require('http');//引入url地址var url = 'http://www.imooc.com/learn/2 ...
- express-session使用理解
本篇主要段落翻译来自https://github.com/expressjs/session 客户端与服务会使用一个Sessionid的Cookie值来进行客户端和服务器端会话的匹配,这个Cookie ...