java_Excel 导出
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 导出的更多相关文章
- premere cs4绿色版 安装 并且 视频导出 讲解
最近室友,开始在玩视频剪辑,用的是 premere cs4 绿色版.让他遇到的最大问题也是我之前遇到的最大问题,就是视频导出. 所以我在这里上传一套自己的一点点经验吧. 接下来,我就总结一下 我是怎么 ...
- C# Excel导入、导出【源码下载】
本篇主要介绍C#的Excel导入.导出. 目录 1. 介绍:描述第三方类库NPOI以及Excel结构 2. Excel导入:介绍C#如何调用NPOI进行Excel导入,包含:流程图.NOPI以及C#代 ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(63)-Excel导入和导出-自定义表模导入
系列目录 前言 上一节使用了LinqToExcel和CloseXML对Excel表进行导入和导出的简单操作,大家可以跳转到上一节查看: ASP.NET MVC5+EF6+EasyUI 后台管理系统(6 ...
- Hawk 5.1 数据导入和导出
除了一般的数据库导入导出,Hawk还支持从文件导入和导出,支持的文件类型包括: Excel CSV(逗号分割文本文件) TXT (制表符分割文本文件) Json xml Excel 目前来看,Exce ...
- CRL快速开发框架系列教程十(导出对象结构)
本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...
- CRL快速开发框架系列教程九(导入/导出数据)
本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...
- C#向PPT文档插入图片以及导出图片
PowerPoint演示文稿是我们日常工作中常用的办公软件之一,而图片则是PowerPoint文档的重要组成部分,那么如何向幻灯片插入图片以及导出图片呢?本文我将给大家分享如何使用一个免费版Power ...
- C#中将DataTable导出为HTML的方法
今天我要向大家分享一种将DataTable导出为到HTML格式的方法.有时我们需要HTML格式的输出数据, 以下代码就可以帮助我们达到目的,. 首先,我们要绑定DataTable和 DataGridV ...
- C#使用Aspose.Cells导出Excel简单实现
首先,需要添加引用Aspose.Cells.dll,官网下载地址:http://downloads.aspose.com/cells/net 将DataTable导出Xlsx格式的文件下载(网页输出) ...
随机推荐
- Leetcode First Missing Positive
Given an unsorted integer array, find the first missing positive integer. For example,Given [1,2,0] ...
- Python中的dict和set
1.dict定义: Python写一个dict如下: >>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85} >>> d[' ...
- Glyphicon 字体图标
Bootstrap中的Glyphicon 字体图标 在Bootstrap框架中也为大家提供了近200个不同的icon图片,而这些图标都是使用CSS3的@font-face属性配合字体来实现的icon效 ...
- 通过Gulp使用Browsersync实现浏览器实时响应文件更改
Gulp是什么鬼 Browsersync又是什么鬼 如何安装使用Browsersync 安装 使用 效果图 参考 Gulp是什么鬼 Gulp是一种基于node.js的构建工具,有关构建工具的概念请移步 ...
- vmstat命令学习
vmstat 是Linux/Unix系统用来进行系统监控的工具 监控的目标主要有目标服务器的cpu使用率.内存的使用情况.虚拟内存交换情况,IO读写情况. 可以通过vmstat --help来获得该命 ...
- quick-3.5 eclipse android
quick-3.5 eclipse android 上遇到的 问题 首先是已经安装了SDK NDK ADT 环境变量都已经配置好了 直接打开项目然后运行 却出现这个鸟问题如图: NDK_ROOT = ...
- myString操作符重载
写在前面的话: 重载是C++的重要内容,在自定义一个类的时候,需要对类中的方法进行重载,才能方便的实现相应的功能,比如一些运算符,构造,析构函数,一些功能函数等等,而C++语言自带的这些东西只使用于基 ...
- myeclipse项目上出现红色叹号
右键选中项目:build path→configure build path (由于的我是在问题解决之后发表的博客,所以jar包上面的红色叉子不见了,只要选中红色的jar包,然后选择‘Remove’按 ...
- 多边形裁剪的Sutherland-Hodgman算法
多边形裁剪是渲染管线中重要的一个子阶段,它将视截体外的多边形去除.一种简单的裁剪策略是一旦发现一个顶点在裁剪区域以外,就立刻丢弃该多边形.更加精细的做法则是,将原来的多边形拆为多个不跨越边界的多边形, ...
- 在 Linux 下搭建 Git 服务器
环境: 服务器 CentOS6.6 + git(version 1.7.1)客户端 Windows10 + git(version 2.8.4.windows.1) ① 安装 Git Linux 做为 ...