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. trie字典树详解及应用

    原文链接    http://www.cnblogs.com/freewater/archive/2012/09/11/2680480.html Trie树详解及其应用   一.知识简介        ...

  2. 字体在网页中画ICON图标

    用字体在网页中画ICON图标有三种小技巧: 1.用CSS Sprite在网页中画小图标 实现方法: 首先将小图片整合到一张大的图片上 然后根据具体图标在大图上的位置,给背景定位.background- ...

  3. 2016huasacm暑假集训训练四 _排列

    题目链接:http://acm.hust.edu.cn/vjudge/contest/125308#problem/D 这题要求错误的方式有多少种,就是一个错排公式,记得公式就行            ...

  4. MongoDB 3.X 用户权限控制

    摘要: MongoDB 3.0 安全权限访问控制,在添加用户上面3.0版本和之前的版本有很大的区别,这里就说明下3.0的添加用户的方法. 环境.测试: 在安装MongoDB之后,先关闭auth认证,进 ...

  5. maven模块

    用maven无它,唯方便而. 模块依赖可以用来做一些公共模块,多个工程调用. 先子模块 install 或者package.在父模块install

  6. AD Local Domain groups, Global groups and Universal groups

    http://ss64.com/nt/syntax-groups.html Rules that govern when a group can be added to another group ( ...

  7. 【emWin】例程三:显示方向的切换

    实验指导书及代码包下载: http://pan.baidu.com/s/1pK9o0xP

  8. 【emWin】例程二:显示“hello,world”

    实验指导书及代码包下载: http://pan.baidu.com/s/1c1Csx48

  9. WPF重写Image实现动态图片--未测试

    WPF很强大,但是当WPF的image控件遇到gif时就只读了图片的第一帧,很好很强大! WPF不屑于gif的简单动画! 幸好WPF里有MediaElement这个东西,它是对MediaPlyer的一 ...

  10. js windows.open()模拟POST提交

    function openPostWindow (url,name, data1, data2)        {            var tempForm = document.createE ...