excel导出简单示例(jxl jar包)
@param title excel文件名
@param excelTopName 表头中文名字(显示在第一行的中文表头内容)
@param header 表头字段属性(根据该属性获取对应的属性值,表头内容作为key值,根据该key值循环获取内容)
@param content 内容
@param response 响应
1 public boolean downloadExcel(String title, String[] excelHeaderChName,
String[] header, List<Map<String, String>> content,
HttpServletResponse response) {
try {
String name = java.net.URLEncoder.encode(title, "UTF8");
String filename = name
+ new SimpleDateFormat("yyyyMMddhhmmss").format(new Date());
filename = new String(filename.getBytes("UTF-8"), "ISO-8859-1");
response.reset();
response.setCharacterEncoding("utf-8");
response.setContentType("application/msexcel");// 设置为下载application/x-download
response.setHeader("Content-Disposition", "inline;filename=\""
+ filename + ".xls\"");
OutputStream os = response.getOutputStream(); WritableWorkbook wwb = Workbook.createWorkbook(os);
// 创建excel工作表,指定名字和位置
WritableSheet sheet = wwb.createSheet(title, 0); // 生成表头(行宽)
for (int i = 0; i < header.length; i++) {
sheet.addCell(new Label(i, 0, excelHeaderChName[i]));
// 设置excel列宽
sheet.setColumnView(i, 15);
} // 内容
for (int i = 0; i < content.size(); i++) {
for (int j = 0; j < content.get(i).size(); j++) {
sheet.addCell(new Label(j, i + 1, content.get(i).get(
header[j])
+ ""));
}
} // 写入工作表
wwb.write();
wwb.close();
os.close();
} catch (IOException | WriteException e) {
e.printstackTrace();
}
return true;
}
2019-1-7:使用poi导出Excel文件到浏览器时,出现内容乱码的情况,尝试各种方式都不行,后来改用jxl方式来导出Excel,问题得到解决。 在本地运行不会出现乱码,
但在resin服务上始终乱码,查看了服务器上的编码格式是gbk格式,打印了日志查询出来的内容也没有乱码,不清楚什么原因。。。望小伙伴们解答疑惑 附上poi导出Excel代码
/**
* @Description: 导出Excel
* @param workbook
* @param sheetNum (sheet的位置,0表示第一个表格中的第一个sheet)
* @param sheetTitle (sheet的名称)
* @param headers (表格的列标题)
* @param result (表格的数据)
* @param out (输出流)
* @throws Exception
*/
public static void exportExcel(HSSFWorkbook workbook, int sheetNum, String sheetTitle, String[] headers,
List<List<String>> result) throws Exception {
// 生成一个表格
HSSFSheet sheet = workbook.createSheet();
workbook.setSheetName(sheetNum, sheetTitle);
// 生成一个样式
HSSFCellStyle style = workbook.createCellStyle();
// 设置这些样式
style.setFillForegroundColor(HSSFColor.PALE_BLUE.index);
style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
style.setBorderRight(HSSFCellStyle.BORDER_THIN);
style.setBorderTop(HSSFCellStyle.BORDER_THIN);
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
// 生成一个字体
HSSFFont font = workbook.createFont();
font.setColor(HSSFColor.BLACK.index);
font.setFontHeightInPoints((short) 12);
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
// 把字体应用到当前的样式
style.setFont(font);
// 指定当单元格内容显示不下时自动换行
style.setWrapText(true);
// 产生表格标题行
HSSFRow row = sheet.createRow(0);
for (int i = 0; i < headers.length; i++) {
HSSFCell cell = row.createCell((short)i);
cell.setCellStyle(style);
HSSFRichTextString text = new HSSFRichTextString(headers[i]);
// tempContent = new String(tempContent.getBytes("UTF-8"), "ISO-8859-1");
//tempContent = new String(tempContent.getBytes("ISO-8859-1"), "UTF-8");
cell.setCellValue(new String(text.toString().getBytes("GBK"), "ISO-8859-1"));
}
// 遍历集合数据,产生数据行
if (result != null) {
int index = 1;
for (List<String> m : result) {
row = sheet.createRow(index);
int cellIndex = 0;
for (String str : m) {
HSSFCell cell = row.createCell((short)cellIndex);
if(null == str || str.equals("")) {
cell.setCellValue("");
}else {
cell.setCellValue(str.toString());
}
log.info("####"+str.toString());
cellIndex++;
}
index++;
}
}
}
excel导出简单示例(jxl jar包)的更多相关文章
- excel导出 jxl.jar包
导入jxl.jar包, 代码如下: package com.gree; import java.io.IOException; import java.io.OutputStream; import ...
- Java使用jxl.jar包写Excel文件的最适合列宽问题基本实现
以前用jxl.jar包,读写过Excel文件.也没有注意最适合列宽的问题,但是jxl.jar没有提供最适合列宽的功能,上次用到写了一下,可以基本实现最适合列宽. 注意,这个只是基本可以实现,基本针对中 ...
- Excel文件按照指定模板导入数据(用jxl.jar包)
本文中的方法只适合Excel2003,要读取Excel2007最好使用poi.jar,据说poi.jar还在更新,jxl.jar已经不更新了,处理Excel文件的读写问题最好还是学习poi.j ...
- 【转】maven导出项目依赖的jar包
本文转自:http://my.oschina.net/cloudcoder/blog/212648 一.导出到默认目录 targed/dependency 从Maven项目中导出项目依赖的jar包:进 ...
- IntelliJ IDEA导出Java 可执行Jar包
原文:IntelliJ IDEA导出Java 可执行Jar包 保证自己的Java代码是没有问题的,在IDEA里面是可以正常运行的,然后,按下面步骤: 打开File -> Project Stru ...
- Maven导出Project依赖的jar包
Maven导出Project依赖的jar包 从Maven仓库中导出jar包: mvn dependency:copy-dependencies 会导出到Project的targed/dependenc ...
- eclipse maven 导出项目依赖的jar包
转自:https://blog.csdn.net/andyliulin/article/details/46544555 一.导出到默认目录 targed/dependency 从Maven项目中导出 ...
- eclipse maven jar工程导出项目依赖的jar包
今天遇到个事,给业务开发/测试搞个了转换工具,是使用swing写的,依赖了很多的三方包,为了方便打算以bat方式提供,但是要导出依赖的三方jar,网上搜了下,如下(已测试): 一.导出到默认目录 ta ...
- maven导出项目依赖的jar包
摘要: 在进行项目部署时,需要将maven项目所依赖的jar导出到指定目录,本文讲解如何导出项目依赖的jar包 一.导出到默认目录 targed/dependency 从Maven项目中导出项目依赖的 ...
随机推荐
- ivew select组件 DatePicker组件的清空
<Form ref="formInline" :model="formInline" :rules="ruleInline" inli ...
- bzoj5047 [Lydsy1709月赛]空间传送装置 最短路
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=5047 题解 题目中没有说可以停留在一个点等待.问了别人才知道停留是可以的. 那么既然停留是可以 ...
- ubuntu 安装apache2 二进制包
官方安装教程 http://httpd.apache.org/docs/2.4/install.html 一.下载安装包 进入https://httpd.apache.org/download.cg ...
- HTTP: 状态码200~505说明
HTTP状态码(HTTP Status Code) 一些常见的状态码为: 200 - 服务器成功返回网页 404 - 请求的网页不存在 503 - 服务不可用 所有状态解释: 1xx(临时响应) 表示 ...
- 【leetcode】1008. Construct Binary Search Tree from Preorder Traversal
题目如下: Return the root node of a binary search tree that matches the given preorder traversal. (Recal ...
- v-for中的key的使用【key的作用主要是是为了高效的更新虚拟DOM】
vue中列表循环需加:key="唯一标识" 唯一标识可以是item里面id index等,因为vue组件高度复用增加Key可以标识组件的唯一性,为了更好地区别各个组件 key的作用 ...
- 26 October in 614
Practice tower 有 \(N\,(2\le N\le 600000)\) 块砖,要搭一个 \(N\) 层的塔,要求:如果砖 \(A\) 在砖 \(B\) 上面,那么 \(A\) 不能比 \ ...
- LintCode之各位相加
题目描述: 我的代码 public class Solution { /* * @param num: a non-negative integer * @return: one digit */ p ...
- servlet3.0 异步处理
转:https://blog.csdn.net/benjamin_whx/article/details/38874657 13.1.概述 计算机的内存是有限的.Servlet/JSP容器的设计者很清 ...
- 【原】webpack--文件监听的原理
轮询判断文件的最后编辑时间是否发生变化,一开始有个文件的修改时间,先存储起来这个修改时间,下次再有修改就会和上次修改时间比对,发现不一致的时候不会立即告诉监听者,而是把文件修改缓存起来,等待一段时间, ...