导出的Excel名字乱码_恢复的excel文件乱码

导出的Excel名字乱码_恢复的excel文件乱码因为经常要用到导出功能,之前因为文件名乱码,所以都用英文或是拼音缩写来代替,今天特意要接觉下这个问题。顺便记录下。望对小白有用。/***导出结算详情列表*@return*/publicvoiddepositLogExport(){Stringtitle=”押金流水报表”;StringexcelName=”押金流水报表.xls”;OutputStreamos=null;t…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

因为经常要用到导出功能,之前因为文件名乱码,所以都用英文或是拼音缩写来代替,今天特意要接觉下这个问题。顺便记录下。望对小白有用。

/**

* 导出结算详情列表

* @return

*/

public void  depositLogExport()

{

String title = “押金流水报表”;

String excelName = “押金流水报表.xls”;

OutputStream os = null;

try

{

int shopId=new Long(getShopLoginer().getShop().getId()).intValue();

if(date==null){

date=new DateBean();

}

int count=service.getCount(shopId, date);

Page pageResult =new Page();

if(count>0){

pageResult = service.list(1, count, shopId, date);

}

List> list = new ArrayList>();

double shopDeposit=getShopLoginer().getShop().getDeposit();

for (DepositLog s : pageResult.getData())

{

Map map = new HashMap();

map.put(“id”, s.getId());

map.put(“depositSn”, s.getDepositSn());

map.put(“createTime”,                     StringUtils.timestampToString(s.getCreateTime()));

map.put(“type”, type[s.getType()]);

map.put(“amount”, s.getAmount());

map.put(“depositRest”, s.getDepositRest());

map.put(“depositGap”, shopDeposit-s.getDepositRest());

map.put(“userName”, s.getUserName());

map.put(“remarks”, s.getRemarks());

list.add(map);

}

// 表格表头

String[] header = {“流水号”,”流水时间”,”类型”,”流水金额”,”押金余额”,”押金缺口”,”操作人”,”备注”};

// 对应Map中的key

String[] key = { “depositSn”, “createTime”,”type”,

“amount”, “depositRest”, “depositGap”, “userName”, “remarks”};

HSSFWorkbook workbook = null;

HttpServletResponse response = ServletActionContext

.getResponse();

workbook = ExportUtil.workPaperExport(list, header, key,

title, true, null, null, null);

os = response.getOutputStream();

response.setHeader(“Content-disposition”,

“p_w_upload; filename=” + toUtf8String(excelName));

response.setContentType(“application/msexcel;charset=UTF-8”);

workbook.write(os);

os.flush();

} catch (Exception e) {

if (logger.isDebugEnabled())

logger.error(e.getMessage(), e);

e.printStackTrace();

} finally {

try {

if (os != null)

os.close();

} catch (IOException e) {

if (logger.isInfoEnabled())

logger.error(e.getMessage(), e);

e.printStackTrace();

}

}

//return null;

}

//文件名乱码处理

public static String toUtf8String(String s){

StringBuffer sb = new StringBuffer();

for (int i=0;i

char c = s.charAt(i);

if (c >= 0 && c <= 255){sb.append(c);}

else{

byte[] b;

try { b = Character.toString(c).getBytes(“utf-8”);}

catch (Exception ex) {

System.out.println(ex);

b = new byte[0];

}

for (int j = 0; j < b.length; j++) {

int k = b[j];

if (k < 0) k += 256;

sb.append(“%” + Integer.toHexString(k).toUpperCase());

}

}

}

return sb.toString();

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/179109.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Linux命令 ldd

    Linux命令 ldd转载:Linux中的ldd命令和pvs命令ldd命令用于判断某个可执行的binary档案含有什么动态函式库。参数说明:–version  打印ldd的版本号-v–verbose  打印所有信息,例如包括符号的版本信息-d–data-relocs  执行符号重部署,并报告缺少的目标对象(只对ELF格式适用)-r–function-relocs  对目标对象和函数执行重

    2022年6月8日
    37
  • DCache 分布式存储系统|List 缓存模块的创建与使用[通俗易懂]

    DCache 分布式存储系统|List 缓存模块的创建与使用[通俗易懂]作者|Eaton导语|在之前的系列文章中,我们介绍了DCache及其KV和K-K-Row缓存模块的使用,本文将继续介绍如何使用DCache中的列表类型缓存模块——List缓存模块。系列文章DCache分布式存储系统|安装部署与应用创建DCache分布式存储系统|Key-Value缓存模块的创建与使用DCache分布式存储系统|K-K-Row缓存模块的创建与使用DCache分布式存储系统|List缓存模块的创建与使用目录List模块简介创建.

    2022年8月30日
    0
  • onshow「建议收藏」

    onshow「建议收藏」当小程序启动或者从后台重新进入的时候会触发事件

    2022年6月29日
    19
  • 学C++的经验总结

    下面的是学C++时要注意的。1.把C++当成一门新的语言学习(和C没啥关系!真的。);2.看《ThinkingInC++》,不要看《C++变成死相》;3.看《TheC++Programm

    2021年12月24日
    33
  • Java解析XML并自动写入Excel

    Java解析XML并自动写入Excel实习期间导师给我分配了个小任务把xml文件中的字段内容腾到excel中,中间涉及一些对于数据的分析抽取等,但都有规可循,有道是懒是编程发展的原动力,所以我自己做了一个小demo实现了以上功能的自动化目录实现效果Java解析XML文件源数据到填入Excel数据的转换自动写入Excel实现效果xml文件大致是这样的手动录入大致是这样的程序实现控制台输出写入文件我把整个功能剖成三部分Java解析XML文件源数据到填入Excel数据的转换自动写入ExcelJava解析XM.

    2022年8月22日
    7
  • python多线程详解(超详细)

    python多线程详解(超详细)python中的多线程是一个非常重要的知识点,今天为大家对多线程进行详细的说明,代码中的注释有多线程的知识点还有测试用的实例。importthreadingfromthreadingimportLock,Threadimporttime,os”’python多线程详解什么是线程?…

    2022年5月3日
    30

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号