HSSFWorkBooK用法 ---Excel表的导出和设置
1 public ActionResult excelPrint() {
2 HSSFWorkbook workbook = new HSSFWorkbook();// 创建一个Excel文件
3 HSSFSheet sheet = workbook.createSheet();// 创建一个Excel的Sheet
4 sheet.createFreezePane(1, 3);// 冻结
5 // 设置列宽
6 sheet.setColumnWidth(0, 1000);
7 sheet.setColumnWidth(1, 3500);
8 sheet.setColumnWidth(2, 3500);
9 sheet.setColumnWidth(3, 6500);
10 sheet.setColumnWidth(4, 6500);
11 sheet.setColumnWidth(5, 6500);
12 sheet.setColumnWidth(6, 6500);
13 sheet.setColumnWidth(7, 2500);
14 // Sheet样式
15 HSSFCellStyle sheetStyle = workbook.createCellStyle();
16 // 背景色的设定
17 sheetStyle.setFillBackgroundColor(HSSFColor.GREY_25_PERCENT.index);
18 // 前景色的设定
19 sheetStyle.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index);
20 // 填充模式
21 sheetStyle.setFillPattern(HSSFCellStyle.FINE_DOTS);
22 // 设置列的样式
23 for (int i = 0; i <= 14; i++) {
24 sheet.setDefaultColumnStyle((short) i, sheetStyle);
25 }
26 // 设置字体
27 HSSFFont headfont = workbook.createFont();
28 headfont.setFontName("黑体");
29 headfont.setFontHeightInPoints((short) 22);// 字体大小
30 headfont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);// 加粗
31 // 另一个样式
32 HSSFCellStyle headstyle = workbook.createCellStyle();
33 headstyle.setFont(headfont);
34 headstyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 左右居中
35 headstyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 上下居中
36 headstyle.setLocked(true);
37 headstyle.setWrapText(true);// 自动换行
38 // 另一个字体样式
39 HSSFFont columnHeadFont = workbook.createFont();
40 columnHeadFont.setFontName("宋体");
41 columnHeadFont.setFontHeightInPoints((short) 10);
42 columnHeadFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
43 // 列头的样式
44 HSSFCellStyle columnHeadStyle = workbook.createCellStyle();
45 columnHeadStyle.setFont(columnHeadFont);
46 columnHeadStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 左右居中
47 columnHeadStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 上下居中
48 columnHeadStyle.setLocked(true);
49 columnHeadStyle.setWrapText(true);
50 columnHeadStyle.setLeftBorderColor(HSSFColor.BLACK.index);// 左边框的颜色
51 columnHeadStyle.setBorderLeft((short) 1);// 边框的大小
52 columnHeadStyle.setRightBorderColor(HSSFColor.BLACK.index);// 右边框的颜色
53 columnHeadStyle.setBorderRight((short) 1);// 边框的大小
54 columnHeadStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); // 设置单元格的边框为粗体
55 columnHeadStyle.setBottomBorderColor(HSSFColor.BLACK.index); // 设置单元格的边框颜色
56 // 设置单元格的背景颜色(单元格的样式会覆盖列或行的样式)
57 columnHeadStyle.setFillForegroundColor(HSSFColor.WHITE.index);
58
59 HSSFFont font = workbook.createFont();
60 font.setFontName("宋体");
61 font.setFontHeightInPoints((short) 10);
62 // 普通单元格样式
63 HSSFCellStyle style = workbook.createCellStyle();
64 style.setFont(font);
65 style.setAlignment(HSSFCellStyle.ALIGN_LEFT);// 左右居中
66 style.setVerticalAlignment(HSSFCellStyle.VERTICAL_TOP);// 上下居中
67 style.setWrapText(true);
68 style.setLeftBorderColor(HSSFColor.BLACK.index);
69 style.setBorderLeft((short) 1);
70 style.setRightBorderColor(HSSFColor.BLACK.index);
71 style.setBorderRight((short) 1);
72 style.setBorderBottom(HSSFCellStyle.BORDER_THIN); // 设置单元格的边框为粗体
73 style.setBottomBorderColor(HSSFColor.BLACK.index); // 设置单元格的边框颜色.
74 style.setFillForegroundColor(HSSFColor.WHITE.index);// 设置单元格的背景颜色.
75 // 另一个样式
76 HSSFCellStyle centerstyle = workbook.createCellStyle();
77 centerstyle.setFont(font);
78 centerstyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 左右居中
79 centerstyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 上下居中
80 centerstyle.setWrapText(true);
81 centerstyle.setLeftBorderColor(HSSFColor.BLACK.index);
82 centerstyle.setBorderLeft((short) 1);
83 centerstyle.setRightBorderColor(HSSFColor.BLACK.index);
84 centerstyle.setBorderRight((short) 1);
85 centerstyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); // 设置单元格的边框为粗体
86 centerstyle.setBottomBorderColor(HSSFColor.BLACK.index); // 设置单元格的边框颜色.
87 centerstyle.setFillForegroundColor(HSSFColor.WHITE.index);// 设置单元格的背景颜色.
88
89 try {
90 // 创建第一行
91 HSSFRow row0 = sheet.createRow(0);
92 // 设置行高
93 row0.setHeight((short) 900);
94 // 创建第一列
95 HSSFCell cell0 = row0.createCell(0);
96 cell0.setCellValue(new HSSFRichTextString("中非发展基金投资项目调度会工作落实情况对照表"));
97 cell0.setCellStyle(headstyle);
98 /**
99 * 合并单元格
100 * 第一个参数:第一个单元格的行数(从0开始)
101 * 第二个参数:第二个单元格的行数(从0开始)
102 * 第三个参数:第一个单元格的列数(从0开始)
103 * 第四个参数:第二个单元格的列数(从0开始)
104 */
105 CellRangeAddress range = new CellRangeAddress(0, 0, 0, 7);
106 sheet.addMergedRegion(range);
107 // 创建第二行
108 HSSFRow row1 = sheet.createRow(1);
109 HSSFCell cell1 = row1.createCell(0);
110 cell1.setCellValue(new HSSFRichTextString("本次会议时间:2009年8月31日 前次会议时间:2009年8月24日"));
111 cell1.setCellStyle(centerstyle);
112 // 合并单元格
113 range = new CellRangeAddress(1, 2, 0, 7);
114 sheet.addMergedRegion(range);
115 // 第三行
116 HSSFRow row2 = sheet.createRow(3);
117 row2.setHeight((short) 750);
118 HSSFCell cell = row2.createCell(0);
119 cell.setCellValue(new HSSFRichTextString("责任者"));
120 cell.setCellStyle(columnHeadStyle);
121 cell = row2.createCell(1);
122 cell.setCellValue(new HSSFRichTextString("成熟度排序"));
123 cell.setCellStyle(columnHeadStyle);
124 cell = row2.createCell(2);
125 cell.setCellValue(new HSSFRichTextString("事项"));
126 cell.setCellStyle(columnHeadStyle);
127 cell = row2.createCell(3);
128 cell.setCellValue(new HSSFRichTextString("前次会议要求/n/新项目的项目概要"));
129 cell.setCellStyle(columnHeadStyle);
130 cell = row2.createCell(4);
131 cell.setCellValue(new HSSFRichTextString("上周工作进展"));
132 cell.setCellStyle(columnHeadStyle);
133 cell = row2.createCell(5);
134 cell.setCellValue(new HSSFRichTextString("本周工作计划"));
135 cell.setCellStyle(columnHeadStyle);
136 cell = row2.createCell(6);
137 cell.setCellValue(new HSSFRichTextString("问题和建议"));
138 cell.setCellStyle(columnHeadStyle);
139 cell = row2.createCell(7);
140 cell.setCellValue(new HSSFRichTextString("备 注"));
141 cell.setCellStyle(columnHeadStyle);
142 // 访问数据库,得到数据集
143 List<DeitelVO> deitelVOList = getEntityManager().queryDeitelVOList();
144 int m = 4;
145 int k = 4;
146 for (int i = 0; i < deitelVOList.size(); i++) {
147 DeitelVO vo = deitelVOList.get(i);
148 String dname = vo.getDname();
149 List<Workinfo> workList = vo.getWorkInfoList();
150 HSSFRow row = sheet.createRow(m);
151 cell = row.createCell(0);
152 cell.setCellValue(new HSSFRichTextString(dname));
153 cell.setCellStyle(centerstyle);
154 // 合并单元格
155 range = new CellRangeAddress(m, m + workList.size() - 1, 0, 0);
156 sheet.addMergedRegion(range);
157 m = m + workList.size();
158
159 for (int j = 0; j < workList.size(); j++) {
160 Workinfo w = workList.get(j);
161 // 遍历数据集创建Excel的行
162 row = sheet.getRow(k + j);
163 if (null == row) {
164 row = sheet.createRow(k + j);
165 }
166 cell = row.createCell(1);
167 cell.setCellValue(w.getWnumber());
168 cell.setCellStyle(centerstyle);
169 cell = row.createCell(2);
170 cell.setCellValue(new HSSFRichTextString(w.getWitem()));
171 cell.setCellStyle(style);
172 cell = row.createCell(3);
173 cell.setCellValue(new HSSFRichTextString(w.getWmeting()));
174 cell.setCellStyle(style);
175 cell = row.createCell(4);
176 cell.setCellValue(new HSSFRichTextString(w.getWbweek()));
177 cell.setCellStyle(style);
178 cell = row.createCell(5);
179 cell.setCellValue(new HSSFRichTextString(w.getWtweek()));
180 cell.setCellStyle(style);
181 cell = row.createCell(6);
182 cell.setCellValue(new HSSFRichTextString(w.getWproblem()));
183 cell.setCellStyle(style);
184 cell = row.createCell(7);
185 cell.setCellValue(new HSSFRichTextString(w.getWremark()));
186 cell.setCellStyle(style);
187 }
188 k = k + workList.size();
189 }
190 // 列尾
191 int footRownumber = sheet.getLastRowNum();
192 HSSFRow footRow = sheet.createRow(footRownumber + 1);
193 HSSFCell footRowcell = footRow.createCell(0);
194 footRowcell.setCellValue(new HSSFRichTextString(" 审 定:XXX 审 核:XXX 汇 总:XX"));
195 footRowcell.setCellStyle(centerstyle);
196 range = new CellRangeAddress(footRownumber + 1, footRownumber + 1, 0, 7);
197 sheet.addMergedRegion(range);
198
199 HttpServletResponse response = getResponse();
200 HttpServletRequest request = getRequest();
201 String filename = "未命名.xls";//设置下载时客户端Excel的名称
202 // 请见:http://zmx.javaeye.com/blog/622529
203 filename = Util.encodeFilename(filename, request);
204 response.setContentType("application/vnd.ms-excel");
205 response.setHeader("Content-disposition", "attachment;filename=" + filename);
206 OutputStream ouputStream = response.getOutputStream();
207 workbook.write(ouputStream);
208 ouputStream.flush();
209 ouputStream.close();
210
211 } catch (Exception e) {
212 e.printStackTrace();
213 }
214 return null;
215 }
HSSFWorkBooK用法 ---Excel表的导出和设置的更多相关文章
- HSSFWorkBooK用法 —Excel表的导出和设置
HSSFWorkBooK用法 —Excel表的导出和设置 2013年02月21日 ⁄ 综合 ⁄ 共 9248字 ⁄ 字号 小 中 大 ⁄ 评论关闭 public ActionResult excelP ...
- JAVA实现创建Excel表并导出(转发)
<span style="font-family:Verdana, Arial, Helvetica, sans-serif;line-height:25.2px;background ...
- 如果从excel表中导出insert-sql
=CONCATENATE("INSERT INTO p_act_lottery(actId,status,grantWay,createTime,invalidTime,amount,pri ...
- 【ITOO 1】将List数据导出Excel表
需求描述:在课表导入的时候,首先给用户提供模板(excel),然后将用户填写好的数据读取到list集合中.再进行判空处赋值处理,以及去重处理.这篇博客,主要介绍读取excel表和导出excel表的方法 ...
- SSM中使用POI实现excel的导入导出
环境:导入POI对应的包 环境: Spring+SpringMVC+Mybatis POI对应的包 <dependency> <groupId>org.apache.poi&l ...
- ASP.NET导出excel表方法汇总
asp.net里导出excel表方法汇总 1.由dataset生成 public void CreateExcel(DataSet ds,string typeid,string FileName) ...
- asp.net使用MVC4框架基于NPOI做导出数据到Excel表
NPOI 是 POI 项目的 .NET 版本.POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目. 使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 ...
- java中的数据导出到Excel表中
整个项目中导出数据到.Excel的源码 import java.io.BufferedOutputStream; import java.io.FileInputStream; import java ...
- JAVA笔记-如何将百万级数据高效的导出到Excel表单
今天,一朋友问我使用JAVA有没有什么办法导出百万级的数据到Excel工作表. 当时我的第一个念头就是这真的是一个好疯狂的念头.然后就想假如真的有这样类似的需求,我自己应该怎么做呢? ps: 首先科普 ...
随机推荐
- 并发,two
引言 为了更加形象的描述并发的基础知识,因此本文LZ采用了园子里一度大火的标题形式--"没听说过XXXX,就不要说你XXXX了".希望能够给猿友们一个醒目的警醒,借此来普及并发的基 ...
- 【Codeforces Round #301 (Div. 2) B】 School Marks
[链接] 我是链接,点我呀:) [题意] 已知k门成绩. 总共有n门成绩. 让你构造剩下的n-k门成绩,使得这n门成绩的中位数>=y,并且这n门成绩的和要小于等于x. n为奇数 [题解] 首先判 ...
- poj1679 The Unique MST(判定次小生成树)
The Unique MST Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 23180 Accepted: 8235 D ...
- HDU 1874 畅通工程续 SPFA || dijkstra||floyd
http://acm.hdu.edu.cn/showproblem.php?pid=1874 题目大意: 给你一些点,让你求S到T的最短路径. 我只是来练习一下SPFA的 dijkstra+邻接矩阵 ...
- 【习题 5-8 UVA - 230】Borrowers
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 用map+set写个模拟就好. 3个区域 书架.桌子.别人的手上. 其中前两个区域的书都能借出去. [代码] #include &l ...
- Shiro的Web项目配置(转)
Shiro的Web项目配置 一 shiro的学习 二 shiro的java客户端配置 三 关于权限的一些问题 一 shiro的学习 官网和张开涛博客 二 shiro的java客户端配置 1.在web. ...
- [Nuxt] Update State with Vuex Actions in Nuxt.js
You can conditionally add classes to Vue.js templates using v-bind:class. This will help display the ...
- Spring Cloud项目
如何使用windows版Docker并在IntelliJ IDEA使用Docker运行Spring Cloud项目 如何使用windows版Docker并在IntelliJ IDEA使用Docke ...
- anaconda中实现双spyder版本
1)先在conda中创建一个名为python2的环境,并下载对应版本python2.7 conda create --name python27 python=2.7 2)激活python2环境 ac ...
- 什么是网站CDN服务,CDN加速原理?
转载:http://server.zzidc.com/fwqcjwt/728.html 摘要:在为您的网站打开速度发愁吗?您有没有发现有些大网站每天拥有几十万或者上百万,甚至几亿用户的访问,而且不同用 ...