package Demo;

 import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; 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.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.CellRangeAddress;
import org.apache.poi.hssf.util.HSSFColor; public class Excel2 extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
try {
response.reset(); // 必须重置一下,不然必报错
// 创建HSSFWorkbook对象 (Excel文档对象)
HSSFWorkbook hw = new HSSFWorkbook();
// 创建sheet对象 (excel表单)
HSSFSheet sheet = hw.createSheet("成绩表");
/**
* 基本字体 样式 居中 大小
*/
HSSFFont font = hw.createFont();
font.setFontName(HSSFFont.FONT_ARIAL);
font.setFontHeightInPoints((short) 10);
/**
* 单元格样式style
*/
HSSFCellStyle style = hw.createCellStyle();
style.setFont(font);
style.setBorderTop((short) 1); // 上
style.setBorderBottom((short) 1); // 下
style.setBorderLeft((short) 1); // 左
style.setBorderBottom((short) 1); // 右
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
style.setWrapText(true);
/**
* 列表头 单元格样式 titlefont
*/
HSSFFont titlefont = hw.createFont();
titlefont.setFontName("微软雅黑");
titlefont.setFontHeightInPoints((short) 10);
titlefont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
/**
* titleCellStyle
*/
HSSFCellStyle titleCellStyle = hw.createCellStyle();
titleCellStyle.setFont(titlefont);
titleCellStyle.setBorderTop((short) 1); // 上
titleCellStyle.setBorderBottom((short) 1); // 下
titleCellStyle.setBorderLeft((short) 1); // 左
titleCellStyle.setBorderBottom((short) 1); // 右
// 设置 对其方式 水平对齐 align center 居中
titleCellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
// 垂直对齐 居中
titleCellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
titleCellStyle.setWrapText(true); // 是否自动换行
// 选择用户填充模式
titleCellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
// 设置单元格填充样式
titleCellStyle.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index);
/**
* 标题头 字体 样式 headFont
*/
HSSFFont headFont = hw.createFont();
headFont.setFontHeightInPoints((short) 18); // 列宽
headFont.setFontName("微软雅黑"); // 字体
headFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); // 粗体
/**
* headStyle
*/
HSSFCellStyle headStyle = hw.createCellStyle();
headStyle.setFont(headFont);
// 段落对其方式 ALIGN_CENTER_SELECTION 居中
headStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER_SELECTION); // 在sheet里创建第一行,,参数为行的索引(excel的行) 可以死0~65535之间的任意
HSSFRow headRow = sheet.createRow(0);
// 创建单元格 参数为列索引 ,可以死0~255之间的任意
HSSFCell cell = headRow.createCell(0);
cell.setCellValue("学生表"); // 设置单元格内容
// 合并单元格 CellRangeAddress() 构造参数依次表示 起始行 截止行 起始列 截止列
sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 6));
cell.setCellStyle(headStyle);
// 创建第二行
HSSFRow row2 = sheet.createRow(1);
String[] arr = { "年级", "班级", "姓名", "性别", "年龄", "职务", "成绩", };
/**
* 为单元格赋值(列名)
*/
for (int i = 0; i < arr.length; i++) {
HSSFCell cell2 = row2.createCell((short) i);// 创建单元格 i第几个(索引)
sheet.setColumnWidth(i, 5000); // 列宽
cell2.setCellValue((String) arr[i]); // 列名
cell2.setCellStyle(titleCellStyle); // 列样式
}
/**
* 数据集
*/
String[][] arrs = {
{ "高一", "六班", "阿杰", "男", "18", "劳动委员", "86" },
{ "高二", "七班", "阿明", "男", "19", "体育委员", "54" },
{ "高三", "八班", "阿敏", "女", "20", "文艺委员", "56" },
{ "初一", "九班", "阿梅", "女", "18", "生活委员", "78" },
{ "高四", "十班", "阿刚", "男", "19", "纪录委员", "65" }
};
int createRow = 2;
/**
* 为单元格赋值 赋样式
*/
for (int i = 0; i < arrs.length; i++) {
//创建行 前面占了两行 现在从第三行 算起
HSSFRow GetRow = sheet.createRow(createRow);
GetRow.setHeight((short) 400); //单元格height高度
int count = 0;
HSSFCell SetCell = null; //创建单元格
for (int j = 0; j < arrs[i].length; j++) {
String string = arrs[i][j]; //得到单元格数据
SetCell = GetRow.createCell(count); //创建单元格到第几列
SetCell.setCellStyle(style);// 设置当前单元格的样式
SetCell.setCellValue(string);// 设置当前单元格的显示文本
count++; // 列单元格索引
}
createRow++; // 行单元格索引
} //日期: 左对齐
HSSFRow RowTime = sheet.createRow(createRow+4);//创建一行
HSSFCell cellTime = RowTime.createCell(arr.length-1);//创建单元格
HSSFCellStyle timeStyle = hw.createCellStyle(); //创建单元格样式
timeStyle.setAlignment((short) HSSFCellStyle.ALIGN_LEFT);//文字左对齐
cellTime.setCellStyle(timeStyle); //设置单元格样式
cellTime.setCellValue("日期:"); //设置value
//2015-01-31 左对齐
HSSFRow EndRow = sheet.createRow(createRow+5);
HSSFCell EndCell = EndRow.createCell(arr.length-1);
HSSFCellStyle endStyle=hw.createCellStyle();
endStyle.setAlignment((short) HSSFCellStyle.ALIGN_LEFT);//文字左对齐
endStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);//单元格颜色自定义
endStyle.setFillForegroundColor(HSSFColor.RED.index); //设定颜色
EndCell.setCellStyle(endStyle);
/**
* 获取 本地时间(服务器时间)
*/
Date now = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
EndCell.setCellValue(dateFormat.format(now));
// 输出Excel
OutputStream outputStream = response.getOutputStream();
response.setHeader("Content-Disposition", "attachment;filename="
+ System.currentTimeMillis() + ".xls");// filename 保存文件的名字
// 设置ASP输出的文档MIME类型 msexcel 表格
response.setContentType("application/msexcel");
hw.write(outputStream); // 写
} catch (RuntimeException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
out.flush();
out.close();
}
}


java_Excel 导出的更多相关文章

  1. premere cs4绿色版 安装 并且 视频导出 讲解

    最近室友,开始在玩视频剪辑,用的是 premere cs4 绿色版.让他遇到的最大问题也是我之前遇到的最大问题,就是视频导出. 所以我在这里上传一套自己的一点点经验吧. 接下来,我就总结一下 我是怎么 ...

  2. C# Excel导入、导出【源码下载】

    本篇主要介绍C#的Excel导入.导出. 目录 1. 介绍:描述第三方类库NPOI以及Excel结构 2. Excel导入:介绍C#如何调用NPOI进行Excel导入,包含:流程图.NOPI以及C#代 ...

  3. ASP.NET MVC5+EF6+EasyUI 后台管理系统(63)-Excel导入和导出-自定义表模导入

    系列目录 前言 上一节使用了LinqToExcel和CloseXML对Excel表进行导入和导出的简单操作,大家可以跳转到上一节查看: ASP.NET MVC5+EF6+EasyUI 后台管理系统(6 ...

  4. Hawk 5.1 数据导入和导出

    除了一般的数据库导入导出,Hawk还支持从文件导入和导出,支持的文件类型包括: Excel CSV(逗号分割文本文件) TXT (制表符分割文本文件) Json xml Excel 目前来看,Exce ...

  5. CRL快速开发框架系列教程十(导出对象结构)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  6. CRL快速开发框架系列教程九(导入/导出数据)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  7. C#向PPT文档插入图片以及导出图片

    PowerPoint演示文稿是我们日常工作中常用的办公软件之一,而图片则是PowerPoint文档的重要组成部分,那么如何向幻灯片插入图片以及导出图片呢?本文我将给大家分享如何使用一个免费版Power ...

  8. C#中将DataTable导出为HTML的方法

    今天我要向大家分享一种将DataTable导出为到HTML格式的方法.有时我们需要HTML格式的输出数据, 以下代码就可以帮助我们达到目的,. 首先,我们要绑定DataTable和 DataGridV ...

  9. C#使用Aspose.Cells导出Excel简单实现

    首先,需要添加引用Aspose.Cells.dll,官网下载地址:http://downloads.aspose.com/cells/net 将DataTable导出Xlsx格式的文件下载(网页输出) ...

随机推荐

  1. 学习js 优先级

    以前很少关注js优先级 主要哦是技术菜鸟老加班没时间技术菜鸟 最重要的是记不住特点.......... 1级 . [] () 字段访问.数组索引.函数调用和表达式分组 通过观察可以发现 . 字段访问- ...

  2. JS:call()和apply的区别

    每个函数都包含两个非继承而来的方法:call()和apply(); call()方法:参数,第一个是作用域中调用函数(this),其余是参数直接传给函数 扩大作用域,传递参数时,参数必须逐个列出. w ...

  3. 【DP】HIHO 1078

    HIHO #1037 : 数字三角形 题意:中文题就不说了. 思路:提示也很清楚,就这里贴一下代码.注意边界情况. dp[i][j] = max(dp[i-1][j],dp[i-1][j-1])+ma ...

  4. source insight使用

    左键选中后 ctrl+ 跳转到定义 alt+,返回到调用者的程序

  5. 【6集iCore3_ADP触摸屏驱动讲解视频】6-1 工程及程序构架介绍

    视频简介: 该视频由银杏科技有限公司基于iCore3应用开发平台推出,包含 触摸屏驱动工程文件的介绍与程序构架的介绍等.   源视频包下载地址: http://pan.baidu.com/s/1dFz ...

  6. C# 程序实现功能目录

    1.根据年月日获取 星期几  http://www.cnblogs.com/liwp/p/5943226.html 2.json对象转换为泛型集合 http://www.cnblogs.com/liw ...

  7. 引用log4j.jar包后,出现告警

    问题现象:在引用log4j包后,使用自己导出的jar包,编译测试例代码,在启动浏览器时出现以下告警:log4j:WARN No appenders could be found for logger ...

  8. webdriver零碎知识点

    #零碎知识点,用于记录平时遇到的比较杂的知识点 driver.current_url 获取当前url phantomjs 实现无浏览器界面自动化测试(driver = webdriver.Phanto ...

  9. js正则匹配的一个日常应用

    应用实例 1 /** 将段落中的 \n 转换为 <p></p>, 规范存储 */ 2 function formatParagraphForStore(val) { 3 var ...

  10. SQLite XXTea加密学习

    这几天优化数据库读写,移植了xxtea加密到最新的数据库sqlite 3.12.2里,一些好文章放在这里.移植后,数据库读写性能异常优秀! 这几天又发现,数据库还是发生了无法写入情况,数据库崩溃掉了. ...