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项目中导出项目依赖的 ...
随机推荐
- better-scroll 的使用
1.安装 cnpm install better-scroll --save 2.引入 import BScroll from "better-scroll"; 3.初始化 dat ...
- bzoj2669 [cqoi2012]局部极小值 状压DP+容斥
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=2669 题解 可以发现一个 \(4\times 7\) 的矩阵中,有局部最小值的点最多有 \(2 ...
- python 的set定义
set是集合,跟数学中的集合一样不能重复没有顺序 set定义有两种方式 1. b=set([1, 2, 3, 4]) 2. a={"} 输出: b=set([1, 2, 3, 4])a={1 ...
- VS2015 Bad Request解决方法
新获取的项目,使用vs2015启动项目,遇到只能用localhost:xxxx的方式访问,使用192.168.**.**:xxxx这样ip+端口的方式无法访问的情况 原因:vs没有做出相应的配置 解决 ...
- 支付宝证书签名 PHP SDK
PHP 接入支付宝证书方式签名以及验签 支付宝在 2019.10.25 日左右更新了新的 PHP SDK (v4.1.0). 之前的 PHP SDK(v3.4.2) 仅支持公钥方式加签.这次更新之后 ...
- phpstudy的80端口被占用问题
1.查看电脑中当前程序占用的端口和程序ID 当phpstudy设置端口号为80时显示占用,在命令行中输入:netstat -ano 就可以看到当前电脑中程序占用的端口和程序ID等等信息 2.查看正在运 ...
- H5页面二次分享
对于H5页面来说二次分享还是蛮重要的,毕竟qq还是微信发出去之后习惯性的使用自带的分享功能.和PC端不同,PC直接复制地址了.前两天在做请柬,踩了不少的雷,个人开发和公司开发还是不一样,各种问题,其他 ...
- MySQL操作数据库值mysql事务
创建一个无参数的事务 注意要写START TRANSACTION或者是Begin;Mysql会默认直接执行一个单元 MYSQL默认是自动提交的,也就是你提交一个QUERY,它就直接执行!我们可 ...
- 通过TCP/IP连接Mysql数据库
问题:mysql只能用localhost或127.0.0.1连接 解决:mysql安装完后,默认是root用户,root用户只能在服务器登录,需要分配新用户. 1.以root用户登陆mysql数据库. ...
- 利用float与overflow:hidden实现移动端两栏自适应布局
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...