• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Java > java解析压缩文件.zip,获取文件夹下的数据

java解析压缩文件.zip,获取文件夹下的数据

作者:cookie的博客 字体:[增加 减小] 来源:互联网 时间:2017-08-25

cookie的博客通过本文主要向大家介绍了java zip压缩文件夹,文件夹压缩成zip,文件夹怎么压缩成zip,linux zip压缩文件夹,zip压缩文件夹等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com


/**
 * 数据包Controller
 * @author cookie
 * @version 2017-08-23
 */

public class BudgetDateController extends BaseController {
    
  
    /**
     * 生成数据包
     * @param budgetDatabase
     * @param model
     * @param redirectAttributes
     * @return
     */
    @RequestMapping(value = "save")
    public String save(BudgetData budgetDatabase, Model model, RedirectAttributes redirectAttributes) throws FileNotFoundException {
        //定义目录
        String fileName="数据包"+DateUtils.getDate("yyyyMMddHHmmss");
        File src=new File("d:\\users\\"+fileName);
        List<BudgetIncomeBill> billList=budgetIncomeBillService.findList(budgetIncomeBill);
        if(billList.size()>0){
            //循环创建7个execl
            for(int b=0;b<billList.size();b++){
                HSSFWorkbook wbb = new HSSFWorkbook();  
                //根据tablenum判断是哪种类型的支出,生成对应的execl
                if(billList.get(b).getTableNum().equals("2")){
                    BudgetIncome budgetIncome=new BudgetIncome();
                    budgetIncome.setHalfYear(budgetDatabase.getHalfYear());
                    budgetIncome.setSqlMap(sqlMap);
                    budgetIncome.setBudgetIncomeBill(billList.get(b));
                    HSSFCellStyle style = wbb.createCellStyle();  
                    Font Font = wbb.createFont();    
                    Font.setFontName("仿宋_GB2312");   
                    Font.setFontHeightInPoints((short) 12);//字号   
                    style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式  
                    style.setVerticalAlignment(CellStyle.VERTICAL_CENTER);//上下居中
                    style.setFont(Font);
                    style.setWrapText(true);
                    //设置左对齐样式
                    HSSFCellStyle leftstyle = wbb.createCellStyle();  
                    leftstyle.setAlignment(HSSFCellStyle.ALIGN_LEFT);
                    leftstyle.setFont(Font);
                    //设置右对齐样式
                    HSSFCellStyle rightstyle = wbb.createCellStyle();  
                    rightstyle.setAlignment(HSSFCellStyle.ALIGN_RIGHT);
                    rightstyle.setFont(Font);
                    HSSFDataFormat df = wbb.createDataFormat();
                    style.setDataFormat(df.getBuiltinFormat("#,##0.00"));//保留两位小数点
                 // 第四步之树形式,创建单元格,设置单元格样式
                    HSSFCellStyle treeStyle = wbb.createCellStyle();  
                    //treeStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式  
                    treeStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER);//上下居中
                    treeStyle.setFont(Font);
                    treeStyle.setWrapText(true);
                    // 第五步,设置边框样式
                    HSSFCellStyle borderStyle = wbb.createCellStyle();  
                    //borderStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式  
                    borderStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER);//上下居中
                    borderStyle.setFont(Font);
                    borderStyle.setWrapText(true);
                    borderStyle.setBorderBottom(CellStyle.BORDER_THIN); // 下边框  
                    borderStyle.setBorderLeft(CellStyle.BORDER_THIN);// 左边框  
                    borderStyle.setBorderTop(CellStyle.BORDER_THIN);// 上边框  
                    borderStyle.setBorderRight(CellStyle.BORDER_THIN);// 右边框  
                    // 第六步,设置表头样式
                    HSSFCellStyle heardStyle = wbb.createCellStyle();  
                    heardStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式  
                    heardStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER);//上下居中
                    heardStyle.setWrapText(true);
                    Font FirstFont = wbb.createFont();    
                    FirstFont.setFontName("黑体");   
                    FirstFont.setFontHeightInPoints((short) 24);//字号   
                    FirstFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);    //加粗
                    // 第六步,设置边框样式
                    HSSFCellStyle centerStyle = wbb.createCellStyle();  
                    centerStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式  
                    centerStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER);//上下居中
                    centerStyle.setFont(Font);
                    centerStyle.setWrapText(true);
                    centerStyle.setBorderBottom(CellStyle.BORDER_THIN); // 下边框  
                    centerStyle.setBorderLeft(CellStyle.BORDER_THIN);// 左边框  
                    centerStyle.setBorderTop(CellStyle.BORDER_THIN);// 上边框  
                    centerStyle.setBorderRight(CellStyle.BORDER_THIN);// 右边框
                    row1.setHeightInPoints(50);//设置列高
                    //String sumByOffice=budgetIncomeService.getSumByAccount();得到总数
                    //cell65.setCellValue(sumByOffice);  
                        List<BudgetIncome> list=budgetIncomeService.findBudget(budgetIncome);
                        List<BudgetIncome> BudgetList=new ArrayList<BudgetIncome>();
                        List<BudgetIncome> cellList=new ArrayList<BudgetIncome>();
                        for(BudgetIncome income:list){
                            income.setSqlMap(budgetIncome.getSqlMap());
                            income.setBudgetIncomeBill(budgetIncome.getBudgetIncomeBill());
                            BudgetList=budgetIncomeService.findBudgetsByParent(income);
                            for(BudgetIncome income2:BudgetList){
                                cellList.add(income2);
                            }
                        }
                        cellList=budgetIncomeService.jisuan(cellList);
                        for(int i=7;i<cellList.size()+7;i++){
                            HSSFRow rowi= sheet.createRow(i-1);  
                            if(i==7){
                                if(cellList.get(i-7).getStandardBudget()!=null){
                                    cell64.setCellValue(Double.parseDouble(cellList.get(i-7).getStandardBudget()));
                                    cell64.setCellStyle(borderStyle);
                                }else{
                                    cell64.setCellValue("");
                                    cell64.setCellStyle(borderStyle);
                                }
                                if(cellList.get(i-7).getApplication()!=null){
                                    cell65.setCellValue(Double.parseDouble(cellList.get(i-7).getApplication()));
                                    cell65.setCellStyle(borderStyle);
                                }else{
                                    cell65.setCellValue("");
                                    cell65.setCellStyle(borderStyle);
                                }
                                if(cellList.get(i-7).getAudit()!=null){
                                    cell66.setCellValue(Double.parseDouble(cellList.get(i-7).getAudit()));
                                    cell66.setCellStyle(borderStyle);
                                }else{
                                    cell66.setCellValue("");
                                    cell66.setCellStyle(borderStyle);
                                }
                                if(cellList.get(i-7).getCompareResults()!=null){
                                    cell67.setCellValue(Double.parseDouble(cellList.get(i-7).getCompareResults()));
                                    cell67.setCellStyle(borderStyle);
                                }else{
                                    cell67.setCellValue("");
                                    cell67.setCellStyle(borderStyle);
                                }
                            }
                            for(int j=1;j<9;j++){
                                HSSFCell cellij = rowi.createCell((short) j-1);
                                if(j==1){
                                    cellij.setCellValue(cellList.get(i-7).getAccount().getName());
                                    cellij.setCellStyle(borderStyle);
                                }
                                else if(j==2){
                                    cellij.setCellValue(cellList.get(i-7).getMeasuringUnit());
                                    cellij.setCellStyle(borderStyle);
                                }
                                else if(j==3){
                                    cellij.setCellValue(cellList.get(i-7).getBudgetSupply());
                                    cellij.setCellStyle(borderStyle);
                                }
                                else if(j==4){
                                    if(cellList.get(i-7).getStandardBudget()!=null){
                                        cellij.setCellValue(Double.parseDouble(cellList.get(i-7).getStandardBudget()));
                                        cellij.setCellStyle(borderStyle);
                                    }else{
                                        cellij.setCellValue("");
                                        cellij.setCellStyle(borderStyle);
                                    }
                                }
                                else if(j==5){
                                    if(cellList.get(i-7).getApplication()!=null){
                                        cellij.setCellValue(Double.parseDouble(cellList.get(i-7).getApplication()));
                                        cellij.setCellStyle(borderStyle);
                                    }
                                }
                                else if(j==6){
                                    if(cellList.get(i-7).getAudit()!=null){
                                        cellij.setCellValue(Double.parseDouble(cellList.get(i-7).getAudit()));
                                        cellij.setCellStyle(borderStyle);
                                    }
                                }
                                else if(j==7){
                                    if(cellList.get(i-7).getCompareResults()!=null){
                                        cellij.setCellValue(Double.parseDouble(cellList.get(i-7).getCompareResults()));
                                        cellij.setCellStyle(borderStyle);
                                    }
                                }
                                else if(j==8){
                                    cellij.setCellValue(cellList.get(i-7).getRemarks());
                                    cellij.setCellStyle(borderStyle);
                                }
                            }
                        }
                    
                }else if(billList.get(b).getTableNum().equals("3")){
                 
                                }
                            }
                    
                }
                //输出Excel文件  
                FileOutputStream output;
                try {
                    if (!src.exists()&& !src.isDirectory()) {
                        src.mkdir();
                    }
                    output = new FileOutputStream(src+"\\"+billList.get(b).getTableNum()+".xls");
                     wbb.write(output);  
                     output.flush();  
                } catch (IOException e) {
                    e.printStackTrace();
                }  
            }
             addMessage(redirectAttributes, "生成数据包成功");
             budgetDatabase.setNo("生成数据包");
             budgetDatabase.setFilename(budgetDatabase.getOffice().getId());
             budgetDatabase.setFileway(fileName);
             budgetDataService.save(budgetDatabase);
        }else{
             addMessage(redirectAttributes, "生成数据包失败");
        }
        return "redirect:"+Global.getAdminPath()+"/data/budgetData/?repage";
    }
    
    /**
     * 恢复数据包
     * @param budgetDatabase
     * @param model
     * @param redirectAttributes
     * @return
     */
    @RequestMapping(value = "load")
    public String load(MultipartFile file,BudgetData budgetDatabase, RedirectAttributes redirectAttributes,HttpServletRequest request,HttpServletResponse response,Model model,HttpSession httpSession) {
        try {  
            String fileName=file.getOriginalFilename();
            String filePath=request.getSession().getServletContext().getRealPath("/")+"upload/"+file.getOriginalFilename();
            File uploadFile = new File(request.getSession().getServletContext().getRealPath("/")+"upload/");
            File savePth=new File(filePath.substring(0, filePath.lastIndexOf("."))+"/"+fileName.substring(0, fileName.lastIndexOf(".")) + File.separator);
            String nowPath=filePath.substring(0, filePath.lastIndexOf("."))+"/"+fileName.substring(0, fileName.lastIndexOf(".")) + File.separator;
            File files=new File(filePath);
            if (!uploadFile.exists()&& !uploadFile.isDirectory()) {
                uploadFile.mkdir();
            }
            if(!files.exists()) {
                file.transferTo(new File(filePath));
            }
            //解压到服务器文件夹
            ZipUtil.unZip(filePath);
            File[] tempList = savePth.listFiles();
              System.out.println("该目录下对象个数:"+tempList.length);
              for (int i = 0; i < tempList.length; i++) {
                     BudgetOutgoBill bill=new BudgetOutgoBill();
                     bill.setOffice(budgetDatabase.getOffice());
                     bill.setSqlMap(sqlMap);
                     bill.setHalfYear(budgetDatabase.getHalfYear());
                     PoiExcelHelper helper;  
                     if(nowPath.indexOf(".xlsx")!=-1) {  
                         helper = new PoiExcel2k7Helper();  
                     }else {  
                         helper = new PoiExcel2k3Helper();  
                     }
                   if (tempList[i].isFile()) {
                       //System.out.println("文     件:"+tempList[i]);
                       //遍历文件夹,获取到所有的execl,循环导入
                       //System.out.println( tempList[i].getName());
                       String type=tempList[i].getName();                    
                       }else{
                           System.out.println("false");
                       }
                   }
                   if (tempList[i].isDirectory()) {
                       System.out.println("文件夹:"+tempList[i]);
                   }
              }
                budgetDatabase.setNo("恢复数据包");
                budgetDatabase.setFilename(budgetDatabase.getOffice().getId());
                budgetDatabase.setFileway(fileName);
                budgetDataService.save(budgetDatabase);
            addMessage(redirectAttributes, "数据恢复成功");
        } catch (Exception e) {
            e.printStackTrace();
           
        }
        return true;
    }

}

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • java解析压缩文件.zip,获取文件夹下的数据

相关文章

  • 2017-05-28MyBatis快速入门
  • 2017-05-28Java去掉数字字符串开头的0三种方法(推荐)
  • 2017-05-28浅析java中next与nextLine用法对比
  • 2017-05-28Java数据结构和算法之冒泡排序(动力节点Java学院整理)
  • 2017-05-28第三方网站微信登录java代码实现
  • 2017-05-28JAVA Frame 窗体背景图片,首位相接滚动代码实例
  • 2017-05-28spring boot ajax跨域的两种方式
  • 2017-05-28java服务端微信APP支付接口详解
  • 2017-05-28Java Web之限制用户多处登录实例代码
  • 2017-05-28Java IO流对象的序列化和反序列化实例详解

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Java中的对象流总结(必看篇)
    • Spring Boot使用Druid和监控配置方法
    • Java 关键字 速查表介绍
    • Java中IO流详解
    • Java网络通信基础编程(必看篇)
    • Javaweb获取表单数据的多种方式
    • 详解eclipse下创建第一个spring boot项目
    • Servlet的5种方式实现表单提交(注册小功能),后台获取表单数据实例
    • mybatis中oracle实现分页效果实例代码
    • Java使用File类遍历目录及文件实例代码

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有