java导出excel文件(标题为中文乱码)
1 Java导出Excel文件
function excelOut(){
window.location.href="../getFileToExcel/"+taskId;
}
String taskId = getPara(0);
// 获取数据
List<Taskorderuser> list = ts.getTaskDetailByTaskId(taskId);
// excel标题
String[] title = { "手机号", "类别", "发送时间"};
// excel文件名
String fileName = "任务详情表" + System.currentTimeMillis() + ".xls";
// sheet名
String sheetName = "任务详情表";
String[][] content = new String[list.size()][];
for (int i = 0; i < list.size(); i++) {
content[i] = new String[title.length];
Taskorderuser tk = list.get(i);
content[i][0] = tk.getTelephone();
content[i][1] = tk.getCommunication();
content[i][2] = DateUtil.getLongToDate(tk.getSendTime());
}
// 创建HSSFWorkbook
HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook(sheetName, title,
content, null);
try {
try {
String userAgent = getRequest().getHeader("USER-AGENT");
//String finalFileName = null;
if(StringUtils.contains(userAgent, "MSIE")){//IE浏览器
fileName = URLEncoder.encode(fileName,"UTF8");
}else if(StringUtils.contains(userAgent, "Mozilla")){//google,火狐浏览器
fileName = new String(fileName.getBytes(), "ISO8859-1");
}else{
fileName = URLEncoder.encode(fileName,"UTF8");//其他浏览器
}
System.out.println(fileName);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
getResponse().setContentType("application/vnd.ms-excel");
getResponse().setHeader("Content-Disposition", "attachment;filename="+ fileName);
getResponse().addHeader("Pargam", "no-cache");
getResponse().addHeader("Cache-Control", "no-cache");
OutputStream os = getResponse().getOutputStream();
wb.write(os);
os.flush();
os.close();
} catch (Exception e) {
e.printStackTrace();
}
2 ExcelUtil类
package com.mms.service;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
public class ExcelUtil {
/**
* 导出Excel
* @param sheetName sheet名称
* @param title 标题
* @param values 内容
* @param wb HSSFWorkbook对象
* @return
*/
public static HSSFWorkbook getHSSFWorkbook(String sheetName,String []title,String [][]values, HSSFWorkbook wb){
// 第一步,创建一个HSSFWorkbook,对应一个Excel文件
if(wb == null){
wb = new HSSFWorkbook();
}
// 第二步,在workbook中添加一个sheet,对应Excel文件中的sheet
HSSFSheet sheet = wb.createSheet(sheetName);
// 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制
HSSFRow row = sheet.createRow(0);
// 第四步,创建单元格,并设置值表头 设置表头居中
HSSFCellStyle style = wb.createCellStyle();
//style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
//style.setAlignment(align);
//声明列对象
HSSFCell cell = null;
//创建标题
for(int i=0;i<title.length;i++){
cell = row.createCell(i);
cell.setCellValue(title[i]);
cell.setCellStyle(style);
}
//创建内容
for(int i=0;i<values.length;i++){
row = sheet.createRow(i + 1);
for(int j=0;j<values[i].length;j++){
//System.out.println("-----"+values.length+" "+values[i].length+" "+values[i][j]);
//将内容按顺序赋给对应的列对象
row.createCell(j).setCellValue(values[i][j]);
}
}
return wb;
}
}
java导出excel文件(标题为中文乱码)相关推荐
- Java导出excel文件以.xlsx后缀结尾,可设置部分单元格只读
前言 最近在做一个小项目,有个模块的功能涉及到excel的导入导出,并且要求对导出的excel文件部分列和单元格设置为只读不可更改,在网上到处查找了一番资料,结合自己的想法,发现也并不难,这里整理记录 ...
- java读取.properties文件及解决中文乱码问题
java读取.properties文件及解决中文乱码问题 参考文章: (1)java读取.properties文件及解决中文乱码问题 (2)https://www.cnblogs.com/helloq ...
- Java导出excel文件
需求 将每个xmpp机房的在线/离线用户信息导出到Excel表格中(定时任务+网页按钮),并在网页上提供下载按钮进行下载. 效果预览 导出文件效果 点击下载弹出框效果 代码总览 /** ". ...
- java读写html文件时出现中文乱码问题的解决方法
最近在做HTML静态生成,需要从硬盘上把模版文件的内容读出来.然后,替换相关标签写到指定的文件中.无论是读写,都遇到了中文乱码问题.试过多种方法,发现下面一种可以避免中文乱码.(无论读取还是写入一定要 ...
- Java 导出 Excel 文件
目前,很多报表,都需要导出Excel文件 首先,maven <dependency><groupId>org.apache.poi</groupId><art ...
- 关于RDLC使用导出PDF文件时,中文乱码解决方案
MicrosftReportViewer控件导出乱码,主要需要设置的是RDCL文件: 关于使用RDLC导出PDF文件时,中文出现乱码现象,本文进行了解决: 其实很简单. 本人平台情况VS2008 英文 ...
- 解决前端导出excel文件,打开为乱码
前端开发中,导入和导出文件是比较常见的业务场景,楼主在初次接触此类问题时,也在此卡了几天,好在问题最终也得以解决,废话不多说了直接上代码: <el-upload:on-error="u ...
- java导出excel文件内容中文乱码解决
记录一个excel导出中发现的问题. 最近使用了EasyExcel这个工具类进行excel的导出,这个类很方便,配合注解和封装的方法,可以很容易的对需要导出的excel或者已有的excel进行行列或者 ...
- java导出excel文件,设置单个单元格内字段不同样式
最近在做文件模板下载,有需求提出,部分字段需要使用*来标明必填,而且必须是红色,因此,在网上百度之后,终于找到参考文档,参考地址贴在最后. public static void main( Strin ...
最新文章
- php使用 js格式解析,php 无限级数据JSON格式及JS解析_PHP教程
- Google Brain与牛津大学主持最新《计算机视觉前沿》报告(146页PPT)
- 数据中心使用dtu远程连接oracel 9i数据库问题
- ConcurrentHashMap 原理解析
- boost::regex模块基于 ftp 的 regex_match 示例
- linux c进程和线程脑图,进程和线程
- React.js 入门与实战课程思维导图
- 计算机网络(六)-传输介质
- C语言字符串分离数字和字母,请问这个用c怎么做:输入一串字符,分别统计其中数字和字母的个数...
- 磁力计 姿态 matlab,磁力计如何用来计算姿态(1)
- matlab空域图像增强,图像处理的MATLAB实现实验一 空域图像增强.doc
- 《.NET框架程序设计》第5章 基元类型、引用类型与值类型
- 未来-IOT-Aliyun:阿里云 IOT - 开发者社区
- 创设Excel服务失败
- 关于sublime出现PyV8binary错误
- 桌面图标无故变成白色
- 排列组合思维导图_图形推理 思维导图 百度文库
- 用友T1-商贸宝库存商品明细账
- SS端口已被占用 1080
- 重庆2021年高考二诊成绩查询,2021年重庆二诊,2021年4月重庆二诊考试,重庆二诊康德卷...