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格式的文件下载(网页输出) ...
随机推荐
- [机器学习] ——KNN K-最邻近算法
KNN分类算法,是理论上比较成熟的方法,也是最简单的机器学习算法之一. 该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别 ...
- vue.js慢速入门(1)
0.MVVM 什么是MVVM?就是Model-View-ViewModel. ViewModel是Vue.js的核心,它是一个Vue实例. 不太懂也没关系,慢慢就懂了. 1.基础示例 代码: < ...
- Windows程序内部运行机制 转自http://www.cnblogs.com/zhili/p/WinMain.html
一.引言 要想熟练掌握Windows应用程序的开发,首先需要理解Windows平台下程序运行的内部机制,然而在.NET平台下,创建一个Windows桌面程序,只需要简单地选择Windows窗体应用程序 ...
- Maya Plugin 编译Maya插件
Maya自身的功能就已经非常强大了,但是更棒的是它的扩展性非常强,提供API让用户自己来编写插件Plugin.Maya的插件主要是两种,一种是用C++编写的,后缀为".mll",另 ...
- Odoo 8.0 new API 之Environment
""" An environment wraps data for ORM records: - :attr:`cr`, the current database cur ...
- 常见bug及解决方案
1.外边距叠加 一.发生在一个div内 <!DOCTYPE> <html> <head> <meta http-equiv=Content-Type cont ...
- SYMMETRIC MULTIPROCESSORS
COMPUTER ORGANIZATION AND ARCHITECTURE DESIGNING FOR PERFORMANCE NINTH EDITION As demands for perfor ...
- js获取上传文件个数 以及名称
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- sprint2总结
在sprint第二阶段的学习过程中,前期和后期在学校网络的支持下我们成功的延迟了把代码上传github的时间,在我们自己感觉上看,完成项目的质量比较理想,在经过sprint第一阶段的学习后,部分上的问 ...
- 使用dbghelp生成dump文件以及事后调试分析
前言 在产品的实际应用环境中,如果我们的程序在客户那里出现了问题,例如程序异常了,而这个时候的现象又不能还原或者很难还原重现,那么只有使用dump文件来保存程序的当前运行信息,例如调用堆栈等,同时使用 ...