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项目中导出项目依赖的 ...
随机推荐
- mysql安装 demo [linux centos7] [5.7.26]
MySQL 安装配置 https://www.runoob.com/linux/mysql-install-setup.html =================================== ...
- 学会如何使用shiro
摘:https://www.cnblogs.com/learnhow/p/5694876.html 一.架构 要学习如何使用Shiro必须先从它的架构谈起,作为一款安全框架Shiro的设计相当精妙.S ...
- 如何改变string中的字符值?
string本身是不可变的,因此要改变string中字符,需要如下操作: str := “hello world” s := []byte(str) s[] = ‘o’ str = string(s) ...
- SpringBoot---缓存支持Cache
1.概述 1.1.在 Spring中使用缓存技术 的 关键 是配置CacheManager: SpringBoot为我们 自动配置了多个 CacheManager实现: Spring ...
- Ubuntu 16.04配置vncviewer
网上有各种各样的教程,既混乱又复杂.这是提供一个亲自测试可用的配置方案,十分简单,桌面环境选用xfce,Ubuntu版本是16.04. 1 安装 Xfce 和 TightVNC sudo apt in ...
- vue项目放在IE上页面空白的问题
Babel是一个广泛使用的转码器,可以将ES6代码转为ES5代码 1.npm install babel-polyfill --save 2.main.js中引入 import 'babel-poly ...
- pycharm 进入Pythonshell脚本调试
- Codeforces 842C--Ilya And The Tree(dfs+树)
原题链接:http://codeforces.com/contest/842/problem/C 题意:一个以1为根节点的树,每个节点有一个值ai,定义美丽度:从根节点到这个节点的路径上所有ai的gc ...
- 二、制作BOM表格--物料表格--Bill of Materials
二.制作BOM表格--物料表格--Bill of Materials 公司会根据这个表格进行相关元器件的采购--以及后期的贴片上彩 操作: .dsn--Tools--Bill of Materials ...
- paper 157:文章解读--How far are we from solving the 2D & 3D Face Alignment problem?-(and a dataset of 230,000 3D facial landmarks)
文章:How far are we from solving the 2D & 3D Face Alignment problem?-(and a dataset of 230,000 3D ...