请问导出Excel 怎么实现。求解决。

小白龙啊 2017-07-25 12:48:36
领导让我做个把表格导出Excel的功能。应该怎么做?没做过、
...全文
259 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hookee 2017-08-02
  • 打赏
  • 举报
回复
1 简单点就 导出成 csv文本(字符串),不带格式的,可以用excel打开。 2 可以在客户端用WebOffice之类的控件,通过javascript生成excel格式,可以带格式。 3 可以用 SQLServer 的OPENROWSET 或者 bcp 导出execl 4 复杂点,写个服务,通过Excel控件生成文件
qq_38926855 2017-08-01
  • 打赏
  • 举报
回复
前台 <input id="btnSubmit" class="btn btn-primary " type="submit" value="导出" onclick="exportTj()"/> //导出 function exportTj(){ var check=$("input[name='checkItem']:checked"); var checkId = new Array(); for(var i = 0;i<check.length;i++){ checkId.push($(check[i]).val()); } location.href = "${ctx}/incomePay/entryFee/exportTj?schoolId="+$("#schoolId").val()+"&beginDate="+$("#beginDate").val()+"&endDate="+$("#endDate").val() +"&payWay="+$("#payWay").val()+"&checkId="+JSON.stringify(checkId); }
qq_38926855 2017-08-01
  • 打赏
  • 举报
回复
@RequestMapping(value = "exportTj") public String exportTj(Student student, HttpServletResponse response,HttpServletRequest request, RedirectAttributes redirectAttributes) { try { String checkId = request.getParameter("checkId"); JSONArray arr = JSONArray.fromObject(checkId); String fileName = "报名费.xlsx"; List<Student> stuList = studentManagerService.findList(student); List<EntryFeeVo> returnList = new ArrayList<EntryFeeVo>(); //从缓存里取字典列表 Map<String, List<Dict>> dictMap = (Map<String, List<Dict>>)CacheUtils.get("dictMap"); if (stuList!=null && stuList.size()>0){ for(Student stu : stuList){ //判断是否有勾选有的话只导出勾选项 if(arr.size() > 0){ boolean flag = false; for(int i = 0; i < arr.size(); i++){ if(stu.getId().equals(arr.get(i))){ flag = true; break; } } if(!flag){ continue; } } EntryFeeVo vo = new EntryFeeVo(); vo.setSchoolName(stu.getSchoolName()); vo.setSignTimeStr(DateUtils.formatDate(stu.getSignTime(), "yyyy-MM-dd")); if(dictMap!=null){ for(int i=0;i<dictMap.get("license_type").size();i++){ if(stu.getLicenseType().equals(dictMap.get("license_type").get(i).getValue())){ vo.setLicenseTypeStr(dictMap.get("license_type").get(i).getLabel()); break; } } vo.setTruename(stu.getTruename()); vo.setUsername(stu.getUsername()); vo.setCardno(stu.getCardno()); vo.setClassName(stu.getClassName()); vo.setPrice(stu.getPrice()); vo.setReturnAmount(stu.getReturnAmount()); vo.setCutAmount(stu.getCutAmount()); vo.setGiftPoint(stu.getGiftPoint()); vo.setIntroducerName(stu.getIntroducerName()); //支付方式 for(int i=0;i<dictMap.get("pay_way_type").size();i++){ if(stu.getPayWay().equals(dictMap.get("pay_way_type").get(i).getValue())){ vo.setPayWayStr(dictMap.get("pay_way_type").get(i).getLabel()); break; } } vo.setRealAmount(stu.getRealAmount()); } returnList.add(vo); } } new ExportExcel("报名费", EntryFeeVo.class, 2).setDataList(returnList).write(response, fileName).dispose(); return null; } catch (Exception e) { addMessage(redirectAttributes, "报名费导出失败!失败信息:"+e.getMessage()); } return "redirect:" + adminPath + "/incomePay/entryFee/list"; }
  • 打赏
  • 举报
回复
前端导出有兼容性问题,自己参考这个:easyui datagrid数据导出excel文件示例
具体内容请参考我的BLOG:http://blog.csdn.net/smallwhiteyt/archive/2009/11/08/4784771.aspx 如果你耐心仔细看完本文,相信以后再遇到导出EXCLE操作的时候你会很顺手觉得SO EASY,主要给新手朋友们看的,老鸟可以直接飘过了,花了一晚上的时间写的很辛苦,如果觉得对你有帮助烦请留言支持一下,我会写更多基础的原创内容来回报大家。 C#导出数据到EXCEL表格是个老生常谈的问题了,写这篇文章主要是给和我一样的新手朋友提供两种导出EXCEL的方法并探讨一下导出的效率问题,本文中的代码直接就可用,其中部分代码参考其他的代码并做了修改,抛砖引玉,希望大家一起探讨,如有不对的地方还请大家多多包涵并指出来,我也是个新手,出错也是难免的。 首先先总结下自己知道的导出EXCEL表格的方法,大致有以下几种,有疏漏的请大家补充。 1.数据逐条逐条的写入EXCEL 2.通过OLEDB把EXCEL做为数据源来写 3.通过RANGE范围写入多行多列内存数据到EXCEL 4.利用系统剪贴板写入EXCEL 好了,我想这些方法已经足够完成我们要实现的功能了,方法不在多,在精,不是么?以上4中方法都可以实现导出EXCEL,方法1为最基础的方法,意思就是效率可能不是太高,当遇到数据量过大时所要付出的时间也是巨大的,后面3种方法都是第一种的衍生,在第一种方法效率低下的基础上改进的,这里主要就是一个效率问题了,当然如果你数据量都很小,我想4种方法就代码量和复杂程度来说第1种基本方法就可以了,或当你的硬件非常牛逼了,那再差的方法也可以高效的完成也没有探讨的实际意义了,呵呵说远了,本文主要是在不考虑硬件或同等硬件条件下单从软件角度出发探讨较好的解决方案。

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧