小工具      在线工具  汉语词典  dos游戏  css  js  c++  java

Java 导出中文文件名的excle表格

Java 额外说明

收录于:52天前

Java导出中文文件名的excel表代码如下:

                String fileName="账单明细.xls";
                String userAgent = request.getHeader("user-agent");
//                response.setHeader("Content-disposition", "attachment; filename=" + new String("账单明细.xls".getBytes("gb2312"), "ISO8859-1"));
                if (userAgent != null && userAgent.indexOf("Firefox") >= 0 ||
                        userAgent.indexOf("Chrome") >= 0 ||
                        userAgent.indexOf("Safari") >= 0) {
                    fileName= new String((fileName).getBytes(), "ISO8859-1");
                } else {
                    fileName= URLEncoder.encode(fileName,"UTF8"); //其他浏览器
                }
                response.setHeader("Content-disposition", "attachment; filename=" + fileName);

导出excel所有代码:

    @Override
    public void exportLtsRecieveListExcle(LtsAgencyFundQuery query, HttpServletResponse response, HttpServletRequest request) {

        Result<List<LtsAgencyFundDto>> result = agencyFundFacadeService.selectLtsRecieveList(query);

        if ("success".equals(result.getResult())&&result.getData()!=null) {
            List<LtsAgencyFundDto> data =result.getData();
            OutputStream os;
            try {
                os = response.getOutputStream();
                response.reset();
                String fileName="账单明细.xls";
                String userAgent = request.getHeader("user-agent");
//                response.setHeader("Content-disposition", "attachment; filename=" + new String("账单明细.xls".getBytes("gb2312"), "ISO8859-1"));
                if (userAgent != null && userAgent.indexOf("Firefox") >= 0 ||
                        userAgent.indexOf("Chrome") >= 0 ||
                        userAgent.indexOf("Safari") >= 0) {
                    fileName= new String((fileName).getBytes(), "ISO8859-1");
                } else {
                    fileName= URLEncoder.encode(fileName,"UTF8"); //其他浏览器
                }
                response.setHeader("Content-disposition", "attachment; filename=" + fileName);
                response.setContentType("application/msexcel");// 定义输出类型
                WritableWorkbook workbook = Workbook.createWorkbook(os);
                WritableSheet sheet = workbook.createSheet("Sheet1", 0);


                // write title
                sheet.addCell(new Label(0, 0, "运单号"));
                sheet.addCell(new Label(1, 0, "人"));
                sheet.addCell(new Label(2, 0, "状态"));
                sheet.addCell(new Label(3, 0, "方式"));
                sheet.addCell(new Label(4, 0, "开单时间"));
                sheet.addCell(new Label(5, 0, "发车时间"));
                sheet.addCell(new Label(6, 0, "收款金额(元)"));
                sheet.addCell(new Label(7, 0, "收款已收(元)"));
                sheet.addCell(new Label(8, 0, "收款未收(元)"));
                sheet.addCell(new Label(9, 0, "收手续费(元)"));
                sheet.addCell(new Label(10, 0, "手续费已付(元)"));
                sheet.addCell(new Label(11, 0, "手续费未付(元)"));
                sheet.addCell(new Label(12, 0, "联系人"));
                sheet.addCell(new Label(13, 0, "手机号"));
                sheet.addCell(new Label(14, 0, "地址"));
                sheet.addCell(new Label(15, 0, "站点"));
                sheet.addCell(new Label(16, 0, "联系人"));
                sheet.addCell(new Label(17, 0, "手机号"));
                sheet.addCell(new Label(18, 0, "地址"));
                sheet.addCell(new Label(19, 0, "站"));
                sheet.addCell(new Label(20, 0, "名称"));
                sheet.addCell(new Label(21, 0, "数量(件)"));
                sheet.addCell(new Label(22, 0, "重量(公斤)"));
                sheet.addCell(new Label(23, 0, "体积(方)"));

                // write data
                int i = 1;
                for (LtsAgencyFundDto vo : data) {

                    String deliveryType="";
                    if (vo.getDeliveryType() == 1) {
                        deliveryType="提";
                    }else if (vo.getDeliveryType() == 2) {
                        deliveryType="货";
                    }

                    String inStatus="";
                    if (vo.getBranchCostInStatus() == 1) {
                        inStatus="回收";
                    }else if (vo.getBranchCostInStatus() == 2) {
                        inStatus="部分";
                    }else if (vo.getBranchCostInStatus() == 3) {
                        inStatus="回收";
                    }

                    sheet.addCell(new Label(0, i, vo.getWayBillNo()));
                    sheet.addCell(new Label(1, i, vo.getBranchCostCustomerName()));
                    sheet.addCell(new Label(2, i, inStatus));
                    sheet.addCell(new Label(3, i, deliveryType));
                    sheet.addCell(new Label(4, i, date2Str(vo.getInputDate(),FMT_STANDARD_LONG)));
                    sheet.addCell(new Label(5, i, date2Str(vo.getSignTime(),FMT_STANDARD_LONG)));
                    sheet.addCell(new Label(6, i, vo.getBranchCost()));
                    sheet.addCell(new Label(7, i, vo.getBranchCostIn()));
                    sheet.addCell(new Label(8, i, vo.getWaitOut()));
                    sheet.addCell(new Label(9, i, vo.getCost()));
                    sheet.addCell(new Label(10, i, ""));
                    sheet.addCell(new Label(11, i, ""));
                    sheet.addCell(new Label(12, i, vo.getShipperName()));
                    sheet.addCell(new Label(13, i, vo.getShipperPhone()));
                    sheet.addCell(new Label(14, i, vo.getfAddress()));
                    sheet.addCell(new Label(15, i, vo.getfSiteName()));
                    sheet.addCell(new Label(16, i, vo.getReceiverName()));
                    sheet.addCell(new Label(17, i, vo.getReceiverPhone()));
                    sheet.addCell(new Label(18, i, vo.gettAddress()));
                    sheet.addCell(new Label(19, i, vo.gettSiteName()));
                    sheet.addCell(new Label(20, i, vo.getGoodsName()));
                    sheet.addCell(new Label(21, i, vo.getGoodsCount()));
                    sheet.addCell(new Label(22, i, vo.getGoodsWeight()));
                    sheet.addCell(new Label(23, i, vo.getGoodsVolume()));
                    i++;
                }
                workbook.write();
                workbook.close();
                os.flush();
            } catch (IOException e){
                LOGGER.error("exportLtsRecieveListExcle error param="+query,e);
                throw new ServiceException("500","导出失败");
            } catch (Exception e) {
                LOGGER.error("exportLtsRecieveListExcle error param="+query,e);
                throw new ServiceException("500","导出失败");
            }
        } else {
            throw new ServiceException("500","数据查询失败");
        }
    }

. . .

相关推荐

额外说明

致西方的诗

“诗言志,歌咏言”,这首诗是如此地深刻、尖锐、凝重、睿智,并带一点冷幽默,而给人带来强烈的共鸣、反响或震撼,还显示了“功夫在诗外”那种不同凡响的才气、阅历与视界,尽管它没有诗的那些“纯匠气元素”,也绝不会也没必要象学术报告那般材料翔实、推理严谨、方法科学

额外说明

项目如何控制实施

  古人云:”在其位,某其政“。担任项目实施负责人已经2月之久,由于自己在这个岗位上,需要对项目实施的问题进行解决,以及管理实施中出现的问题。逐渐也形成了自己对项目实施的基本看法。 其中觉得最突出的一个问题也是自己最关注的问题:如何控制项目实施的进度。记

额外说明

二维数组求和 练习

二维数组求和 练习 二维数组 动态初始化 DEMO 博主 默语带您 Go to New World. ✍ 个人主页—— 默语 的博客-- 《java 面试题大全》 -惟余辈才疏学浅,临摹之作或有不妥之处,还请读者海涵指正。☕- 《MYSQL从入门到精通》

额外说明

【JavaEE】线程的创建及常见方法解析(Tread类)

目录 1.Tread类介绍 2线程的构造方法——创建线程 1.继承Thread类,重写run()方法 2.使用Runnbable接口创建线程 3.继承 Thread, 重写 run, 使用匿名内部类 4.实现 Runnable, 重写 run, 使用匿名

额外说明

STL学习笔记之stack,queue容器

创建与这个一样 stack.push(); stack.pop(); 没有迭代器,即不可遍历。 stack.top()可以返回栈顶的元素值 stack.empty();返回boll值表示是否为空 接下来我们要知道stack的构造函数 stack<> st

额外说明

【Unity3D读取数据】(一)Txt文档操作(创建、读取、写入、修改)

推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 在程序开发中,经常会遇到

额外说明

安卓mediasoup webrtc h264 编解码相关源码分析

文章目录 安卓mediasoup webrtc h264 编解码相关源码分析 mediasoup H264 支持 安卓 webrtc 视频采集流程源码分析 安卓 mediasoup 为啥没有使用H264硬编解码 mediasoup-client-andr

额外说明

结构体的成员偏移量(offsetof)

        C语言的一个语法,能够输出结构体内成员的偏移量,就是把0强转成结构体类型指针然后指向结构体成员,再加个&,就能输出该成员的偏移量了。比如这里有一个task类型的结构体,我想查看其成员名字为a的偏移量就可以这样。 #include<stdi

额外说明

HTTP协议经典面试题整理及答案详解

无论你是Java、PHP开发者,还是运维人员,只要从事互联网行业,面试时都可能被问到HTTP协议相关知识。历时多天的呕心沥血,为你总结了HTTP协议的经典面试题。由于涉及内容比较繁杂不方便记忆,建议收藏起来,时不时看一遍或者面试前突击复习。 什么是HTT

额外说明

【linux】linux 命令:ip/ifcongif 命令 —— 查看服务器网络信息

目录 一、ip 命令查看网络信息 二、ifconfig 命令查看网络信息 一、ip 命令查看网络信息 (1)输入命令查看网卡信息,找到网卡名称,可以看到该网卡已经分配到IP地址,输入命令: ip addr   (2)查看网络统计信息,输入命令: ip l

ads via 小工具