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格式的文件下载(网页输出) ...
随机推荐
- 自定义RadioButton样式
一,在RadioButton标签上使用 android:button="@drawable/pay_radio_selector" 可以修改按钮的样式 二,在RadioButton ...
- android 修改 SwitchPreferenceCompat 高度,内边距,字体大小
public class FontSizeSwitchPreferenceCompat extends SwitchPreferenceCompat { private Context mContex ...
- 【JAVA】 Java 连接池的工作原理
什么是连接? 连接,是我们的编程语言与数据库交互的一种方式.我们经常会听到这么一句话“数据库连接很昂贵“. 有人接受这种说法,却不知道它的真正含义.因此,下面我将解释它 ...
- LINUX内核参数网络相关
有助于提高网络性能和吞吐量的参数 net.core.somaxconn = 128 已完成连接队列(completed connection queue) (1)三次握手已经完成,但还未被应用层接收( ...
- 为川师大女生支招 15年如何还200W
就在昨儿一条新闻火遍全网,川师大21岁女生樊师贝发帖称,希望有人借她200万,为父母在城里买房15年还清,至于利息“可以用后半生来陪伴你”.她说,六旬父亲要负担家用,哥哥啃老,而她目前一分钱都还没挣到 ...
- 对jquery的ajax进行二次封装
第一种方法: $(function(){ /** * ajax封装 * url 发送请求的地址 * data 发送到服务器的数据,数组存储,如:{"username": " ...
- 【Alpha】Daily Scrum Meeting第四次
之前没领悟到Daily Scrum Meeting的精髓,认为要做出些东西才敢拿出来. 在范老师提醒我们保持有节奏的迭代后,我们意识到之前的想法是不符合Daily Scrum Meeting的思想的. ...
- 启动 apache2.4 出现 invalid command order 问题 【由于 PHP 访问权限 403 问题引起】
由于网站出现 403 禁止访问,所以修改了 httpd.conf 文件的权限如下 <Directory /> Options FollowSymLinks AllowOverride N ...
- WAF攻防研究之四个层次Bypass WAF
从架构.资源.协议和规则4个层次研究绕过WAF的技术,助于全方位提升WAF防御能力. 绕过WAF的相关技术研究是WAF攻防研究非常重要的一部分,也是最有趣的部分,所以我在写WAF攻防时先写攻击部分.还 ...
- 学术作为一种志业 马克斯·韦伯Max Weber。
注:原内容来自优酷自频带:梁文道 一千零一夜 学术作为一种志业马克斯·韦伯Max Weber. 韦伯是社会学的三大创始人之一.另外两个,一个是法国的涂尔干,还有一个就是我们中国人都知道的马克思.在其& ...