`

java 下载功能 另存为

 
阅读更多

上次写的java 跟js的下载功能 写的不清晰,有些需求可能还达不到,但是有热心的朋友的提供了,感谢 

java-Ms郑 童鞋。

思路 ,代码都更加完善的版本给我,我在这里整理了一下,以供大家查询

 

其实 导出功能,跟下载功能都可以用到 。上菜。

<a href="#" class="btn daochu" >导出</a>

 

 js   如果是下载 不需要传path

 function exportExcel(){

         $(".daochu").attr('href','${ctx}/assetBzd/zcBzd/exportExcel?str=+"${zcBzd.menuFlag}"');

 }

 

 

 @RequestMapping(value = "exportExcel")

public void exportExcel(HttpServletRequest request, HttpServletResponse response,Model model,

RedirectAttributes redirectAttributes,@RequestParam(value="str")String str){

String fileName = "报账单列表"+DateUtils.getDate("yyyyMMddHHmmss")+".xlsx";

String message=""; 

try {

fileName = new String(fileName.getBytes("GBK"), "iso8859-1");

response.reset();  

response.setHeader("Content-Disposition", "attachment;filename="  

               + fileName);// 指定下载的文件名  

response.setContentType("application/vnd.ms-excel");  

response.setHeader("Pragma", "no-cache");  

response.setHeader("Cache-Control", "no-cache");  

response.setDateHeader("Expires", 0);

 

ZcBzd zcBzd =new ZcBzd();

zcBzd.setBzdType("sbBzd");

zcBzd.setMenuFlag(str);

Page<ZcBzd> page = zcBzdService.findPage(new Page<ZcBzd>(request, response), zcBzd);

List<BzdConfigTable> bzdConfigTable = zcBzdService.getByClassName(zcBzd.getBzdType());

List<String> listColumn = getlistColumn(bzdConfigTable.get(0));

List<ZcBzd> listData = page.getList();

message=createExcelUtils.getBzdExcelNew(listColumn,listData,response);

System.out.println(message);

//message=createExcelUtils.getBzdExcel(listColumn,listData);

//

//addMessage(redirectAttributes, message);

//model.addAttribute("bzdConfigTable" , bzdConfigTable) ;

//model.addAttribute("page", page);

//return "modules/zcBzd/zcBzdList";

} catch (Exception e) {

addMessage(redirectAttributes, message);

}

//return "";

}

 

public static String getBzdExcelNew(List<String> listColumn,List<ZcBzd> listData,HttpServletResponse response){

FileOutputStream fout = null;

String message="";

HSSFCell cell = null;

try{

  // 第一步,创建一个webbook,对应一个Excel文件  

       HSSFWorkbook wb = new HSSFWorkbook();  

      // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet  

       HSSFSheet sheet = wb.createSheet("学生表一");  

       // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short  

       HSSFRow row = sheet.createRow((int) 0);  

       // 第四步,创建单元格,并设置值表头 设置表头居中  

       HSSFCellStyle style = wb.createCellStyle();  

       style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式  

 

       for (int j= 0; j< listColumn.size(); j++){ 

       cell = row.createCell((short) j);  

       cell.setCellValue(listColumn.get(j));  

       cell.setCellStyle(style); 

       }

       

//        cell = row.createCell((short) 0);  

//        cell.setCellValue("学号");  

//        cell.setCellStyle(style);  

//        cell = row.createCell((short) 1);  

//        cell.setCellValue("姓名");  

//        cell.setCellStyle(style);  

//        cell = row.createCell((short) 2);  

//        cell.setCellValue("年龄");  

//        cell.setCellStyle(style);  

//        cell = row.createCell((short) 3);  

//        cell.setCellValue("生日");  

//        cell.setCellStyle(style);  

 

       // 第五步,写入实体数据 实际应用中这些数据从数据库得到,  

//        List list = createExcelUtils.getStudent();  

     

       for (int i = 0; i < listData.size(); i++){  

           row = sheet.createRow((int) i + 1);  

           ZcBzd zcBzd = (ZcBzd) listData.get(i);  

           // 第四步,创建单元格,并设置值  

           row.createCell((short) 0).setCellValue(zcBzd.getFillPersonName().getName());//填写人姓名  

           row.createCell((short) 1).setCellValue(zcBzd.getEquipmentName());  

           row.createCell((short) 2).setCellValue((double) zcBzd.getAccoQuantity());  

//            cell = row.createCell((short) 3);  

//            cell.setCellValue(new SimpleDateFormat("yyyy-mm-dd").format(zcBzd.getCheAccDate()));

           row.createCell((short) 3).setCellValue((double) zcBzd.getAccoAmount());

           row.createCell((short) 4).setCellValue(zcBzd.getUseDepartmentName().getName()); //归属部门

           row.createCell((short) 5).setCellValue(zcBzd.getAssCustodian().getName());

           row.createCell((short) 6).setCellValue(new SimpleDateFormat("yyyy-mm-dd hh-mm-ss").format(zcBzd.getCheAccDate()));

           row.createCell((short) 7).setCellValue(zcBzd.getInvoiceNo());

           row.createCell((short) 8).setCellValue("1".equals(zcBzd.getWheDutyFree())?"是":"否");

           row.createCell((short) 9).setCellValue(zcBzd.getAccoNo());

           row.createCell((short) 10).setCellValue(new SimpleDateFormat("yyyy-mm-dd hh-mm-ss").format(zcBzd.getFillTime()));

        } 

        OutputStream output = response.getOutputStream();

        BufferedOutputStream bufferedOutPut = new BufferedOutputStream(output);

        bufferedOutPut.flush();  

        wb.write(bufferedOutPut);

        bufferedOutPut.close();

 } catch (Exception e){  

           e.printStackTrace();

           message="导出错误";

     }finally{

        if(fout != null){

       try {

fout.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

message="导出错误";

        }

     }

System.out.println("**************************导出完毕**********************");

return message;

}

分享到:
评论

相关推荐

    javaScript实现另存为功能

    在浏览器环境中,JavaScript可以极大地提升用户体验,包括模拟浏览器的一些原生功能,如“另存为”(Save As)功能。这个功能允许用户保存网页上的资源到本地计算机,例如HTML、图片、CSS或JavaScript文件。 在...

    java实现页面另存为word

    Java 实现页面另存为 Word 是一个常见的需求,特别是在数据导出、报告生成或网络内容保存等场景。这里我们将深入探讨如何使用 Java 来完成这个任务,主要关注以下几个方面: 1. **HTML to DOCX 转换原理** HTML ...

    java另存为下载xml

    本主题将深入探讨如何在Java中实现“另存为”下载XML文件的功能,以及如何进行文件操作,如保存、打开和删除。 首先,我们从第一步开始:下载XML文件到本地。这通常涉及到网络I/O操作,可以使用Java的`java.net.URL...

    Java 记事本 保存 另存为 打开文件

    通过以上知识点,我们可以构建一个具备基本功能的Java记事本程序,包括打开、编辑、保存和另存为文件。这个过程不仅可以加深对Java文件操作的理解,也能锻炼UI设计和事件驱动编程的能力。在实际项目中,这样的程序...

    selenium右击另存为图片

    一种方法是模拟JavaScript事件来触发右键菜单,然后模拟选择“另存为”选项。这里我们假设图片元素的ID为`image_id`: 1. **获取图片元素**: ```python image_element = driver.find_element_by_id('image_id')...

    解析百度网页另存为html文件

    当我们需要离线查看网页或保存网页内容时,可以使用浏览器的“另存为”功能,将网页保存为HTML文件。这个过程涉及网络请求、HTML解析和本地存储。首先,浏览器发送HTTP请求到百度服务器获取网页内容;接着,接收到...

    解析excel另存为部分数据

    在我们的场景中,`ExcelManage.java`和`SmsExcel.java`可能就是用来实现这个功能的类。 1. **读取Excel文件**: 使用Apache POI,首先我们需要创建一个`Workbook`对象来表示整个Excel文件。如果是老版本的Excel...

    java 保存文件

    Java 中文件“另存为”的功能是指在 Java 应用程序中实现文件的保存功能,使用户可以根据需要选择文件的保存路径和名称。本文将详细介绍 Java 中文件保存功能的实现过程。 一、获取文件的后缀名 在文件保存功能中...

    使用java的Stream实现读取文本文件,并能实现编辑、保存、另存为、查找、替换等功能

    模拟Windows附件中的记事本功能软件,使用java的Stream实现读取文本文件,并能实现编辑、保存、另存为、查找、替换等功能

    java实现文件下载,并弹出保存对话框(Excel)

    本文将深入探讨如何使用Java实现文件下载,并在客户端弹出保存对话框,特别聚焦于Excel文件的处理,这在企业级应用中尤为常见。 ### Java实现文件下载的关键步骤 1. **设置HTTP响应头**:为了触发浏览器的下载行为...

    Java实现记事本功能

    在Java编程语言中实现一个记事本功能,可以让我们深入理解Java GUI(图形用户界面)设计、事件处理以及文本处理的基础知识。以下是一些相关的Java技术点和实现步骤: 1. **Swing库**:Java Swing是Java AWT(抽象...

    java将网页保存成mht格式程序

    ### Java将网页保存成MHT格式程序:详细解析与实现 ...通过以上解析,我们了解到使用Java实现这一功能的基本流程和关键步骤,这对于开发人员在进行网页离线存储或备份时提供了理论基础和技术指导。

    java提供下载功能

    这个“java提供下载功能”的项目可能涉及创建一个服务器端的Java程序,该程序能够处理客户端的请求,将指定的文件发送到用户的浏览器,使得用户可以进行保存或另存为操作。下面将详细解释这个过程中的关键知识点。 ...

    FusionCharts3.2.2完整例子支持下载~另存为本地

    "FusionCharts3.2.2完整例子支持下载~另存为本地"表明这个压缩包包含了FusionCharts 3.2.2的所有示例代码,开发者可以下载并在本地环境中运行,以理解和学习如何有效地利用这个库。 FusionCharts 3.2.2是面向开发者...

    JAVA编写的记事本

    【JAVA编写的记事本】是一款基于JAVA编程语言开发的简单文本编辑器,它具备基本的文本处理功能,如打开、编辑和保存TXT格式的文档。这个应用的亮点在于其集成了一些额外的功能,如音乐播放器和日历日志,为用户提供...

    通过JavaScript下载文件到本地的方法(单文件)

    在开发中,实现文件下载功能可能会遇到各种问题,比如CORS问题、响应头的正确设置等。上述介绍的几种方法提供了不同场景下的解决思路,从同源文件的简单下载,到非同源文件通过Blob或canvas编码的下载方式,以及通过...

    JSP禁用迅雷等下载工具下载文件,强制使用右键另存功能下载文件

    在Web开发中,为了确保用户能够按照预期的方式下载文件,有时我们需要限制使用某些下载工具如迅雷等来下载文件,而是希望用户通过浏览器本身的“右键另存为”功能进行下载。这种方式可以有效避免第三方下载工具可能...

    Java课程设计--记事本程序

    这个项目的主要目标是创建一个具有基本文本编辑功能的应用程序,如编辑、保存、另存为和查找替换等。 首先,我们需要使用Java的Swing或JavaFX库来构建GUI。Swing是Java的标准GUI工具包,包含丰富的组件,如JFrame...

    jsoup 实现浏览器网页另存为

    **JSoup:网页抓取与解析利器** ...通过上述步骤,你可以利用JSoup抓取网页内容并保存为本地文件,模拟浏览器的“另存为”功能。在实际开发中,JSoup的灵活性和便捷性使其成为Web抓取和解析任务的理想选择。

    ie增强插件一键另存为安装

    标题中的“ie增强插件一键另存为安装”指的是针对Internet Explorer浏览器的一种扩展工具,它增强了浏览器的默认功能,特别是提供了“一键另存为”的特性。在标准的IE浏览器中,用户可能需要经过多步操作才能保存...

Global site tag (gtag.js) - Google Analytics