zoukankan      html  css  js  c++  java
  • 解析excel

    解析上传的excel
    1
    public List<Asset> readXlsxMessage(String path) throws IOException, ParseException { 2 InputStream is = new FileInputStream(path); 3 XSSFWorkbook xssfWorkbook = new XSSFWorkbook(is); 4 5 Asset asset = null; 6 List<Asset> set = new ArrayList<Asset>(); 7 // for (int numSheet = 0; numSheet < xssfWorkbook.getNumberOfSheets(); numSheet++) { 8 XSSFSheet xssfSheet = xssfWorkbook.getSheetAt(0); 9 if (xssfSheet == null) { 10 return null; 11 } 12 int i = xssfSheet.getLastRowNum(); 13 for (int rowNum = 1; rowNum <= i; rowNum++) { 14 XSSFRow xssfRow = xssfSheet.getRow(rowNum); 15 if (xssfRow != null) { 16 asset = new Asset(); 17 XSSFCell assetId = xssfRow.getCell(1); 18 XSSFCell title = xssfRow.getCell(2); 19 XSSFCell assetDesc = xssfRow.getCell(3); 20 XSSFCell keyword = xssfRow.getCell(4); 21 XSSFCell anchor = xssfRow.getCell(5); 22 XSSFCell category = xssfRow.getCell(6); 23 XSSFCell subCategory = xssfRow.getCell(7); 24 XSSFCell duration = xssfRow.getCell(8); 25 XSSFCell uploadTime= xssfRow.getCell(9); 26 XSSFCell posterUrl = xssfRow.getCell(10); 27 XSSFCell imgUrl = xssfRow.getCell(11); 28 XSSFCell videoUrl = xssfRow.getCell(12); 29 XSSFCell state1 = xssfRow.getCell(13); 30 XSSFCell state2 = xssfRow.getCell(15); 31 XSSFCell state3 = xssfRow.getCell(17); 32 33 String st1=getValue(state1).trim(); 34 String st2=getValue(state2).trim(); 35 String st3=getValue(state3).trim(); 36 if("通过".equals(st1)&&st1.equals(st2)&&st1.equals(st3)&&!getValue(assetId).isEmpty()){ 37 asset.setAssetId(getValue(assetId)); 38 if(StringUtils.isNoneBlank(getValue(title))){ 39 asset.setTitle(getValue(title)); 40 } 41 if(StringUtils.isNoneBlank(getValue(assetDesc))){ 42 asset.setAssetDesc(getValue(assetDesc)); 43 } 44 if(StringUtils.isNoneBlank(getValue(keyword))){ 45 asset.setKeyword(getValue(keyword)); 46 } 47 if(StringUtils.isNoneBlank(getValue(anchor))){ 48 asset.setAnchor(getValue(anchor)); 49 } 50 if(StringUtils.isNoneBlank(getValue(category))){ 51 aasset.setCategory(getValue(category)); 52 } 53 if(StringUtils.isNoneBlank(getValue(subCategory))){ 54 asset.setSubCategory(getValue(subCategory)); 55 } 56 if(StringUtils.isNoneBlank(getValue(duration))){ 57 asset.setDuration(toSecond(getValue(duration))); 58 } 59 if(StringUtils.isNoneBlank(getValue(uploadTime))){ 60 asset.setUploadTime(Timestamp.valueOf(getValue(uploadTime))); 61 } 62 if(StringUtils.isNoneBlank(getValue(posterUrl))){ 63 asset.setPosterUrl(getValue(posterUrl)); 64 } 65 if(StringUtils.isNoneBlank(getValue(imgUrl))){ 66 asset.setImgUrl(getValue(imgUrl)); 67 } 68 if(StringUtils.isNoneBlank(getValue(videoUrl))){ 69 asset.setVideoUrl(getValue(videoUrl)); 70 } 71 asset.setImgStatus(0); 72 asset.setVideoStatus(0); 73 set.add(fengxingSpAsset); 74 } 75 } 76 } 77 // } 78 if (is != null) { 79 is.close(); 80 } 81 return set; 82 } 83
     1 public List<Asset> readXlsMessage(String path) throws IOException, ParseException{
     2         InputStream is = new FileInputStream(path);
     3         HSSFWorkbook hssfWorkbook = new HSSFWorkbook(is);
     4 
     5         Asset asset = null;
     6         List<Asset> set = new ArrayList<Asset>();
     7 //        for (int numSheet = 0; numSheet < xssfWorkbook.getNumberOfSheets(); numSheet++) {
     8         HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(0);
     9             if (hssfSheet == null) {
    10                 return null;
    11             }
    12             int i = hssfSheet.getLastRowNum();
    13             for (int rowNum = 1; rowNum <= i; rowNum++) {
    14                 HSSFRow hssfRow = hssfSheet.getRow(rowNum);
    15                 if (hssfRow != null) {
    16                     asset = new Asset();
    17                     HSSFCell assetId = hssfRow.getCell(1);
    18                     HSSFCell title = hssfRow.getCell(2);
    19                     HSSFCell assetDesc = hssfRow.getCell(3);
    20                     HSSFCell keyword = hssfRow.getCell(4);
    21                     HSSFCell anchor = hssfRow.getCell(5);
    22                     HSSFCell category = hssfRow.getCell(6);
    23                     HSSFCell subCategory = hssfRow.getCell(7);
    24                     HSSFCell duration = hssfRow.getCell(8);
    25                     HSSFCell uploadTime= hssfRow.getCell(9);
    26                     HSSFCell posterUrl = hssfRow.getCell(10);
    27                     HSSFCell imgUrl = hssfRow.getCell(11);
    28                     HSSFCell videoUrl = hssfRow.getCell(12);
    29                     HSSFCell state1 = hssfRow.getCell(13);
    30                     HSSFCell state2 = hssfRow.getCell(15);
    31                     HSSFCell state3 = hssfRow.getCell(17);
    32 
    33                     String st1=getValue(state1).trim();
    34                     String st2=getValue(state2).trim();
    35                     String st3=getValue(state3).trim();
    36                     if("通过".equals(st1)&&st1.equals(st2)&&st1.equals(st3)&&!getValue(assetId).isEmpty()){
    37                         asset.setAssetId(getValue(assetId));
    38                         if(StringUtils.isNoneBlank(getValue(title))){
    39                             asset.setTitle(getValue(title));
    40                         }
    41                         if(StringUtils.isNoneBlank(getValue(assetDesc))){
    42                             asset.setAssetDesc(getValue(assetDesc));
    43                         }
    44                         if(StringUtils.isNoneBlank(getValue(keyword))){
    45                             asset.setKeyword(getValue(keyword));
    46                         }
    47                         if(StringUtils.isNoneBlank(getValue(anchor))){
    48                             asset.setAnchor(getValue(anchor));
    49                         }
    50                         if(StringUtils.isNoneBlank(getValue(category))){
    51                             asset.setCategory(getValue(category));
    52                         }
    53                         if(StringUtils.isNoneBlank(getValue(subCategory))){
    54                             asset.setSubCategory(getValue(subCategory));
    55                         }
    56                         if(StringUtils.isNoneBlank(getValue(duration))){
    57                             asset.setDuration(toSecond(getValue(duration)));
    58                         }
    59                         if(StringUtils.isNoneBlank(getValue(uploadTime))){
    60                             asset.setUploadTime(Timestamp.valueOf(getValue(uploadTime)));
    61                         }
    62                         if(StringUtils.isNoneBlank(getValue(posterUrl))){
    63                             asset.setPosterUrl(getValue(posterUrl));
    64                         }
    65                         if(StringUtils.isNoneBlank(getValue(imgUrl))){
    66                             asset.setImgUrl(getValue(imgUrl));
    67                         }
    68                         if(StringUtils.isNoneBlank(getValue(videoUrl))){
    69                             asset.setVideoUrl(getValue(videoUrl));
    70                         }
    71                         asset.setImgStatus(0);
    72                         asset.setVideoStatus(0);
    73                         set.add(fengxingSpAsset);
    74                     }
    75                 }
    76             }
    77 //        }
    78             if (is != null) {
    79                 is.close();
    80             }
    81             return set;
    82         }
     84     // 获取单元格的值 全部转换为 String类型
     85     /**
     86      * @param cell
     87      * @return
     88      */
     89         private String getValue(Cell cell) {
     90             if (cell != null && !cell.toString().equals("")) {
     91                 if (cell.getCellType() == cell.CELL_TYPE_BOOLEAN) {
     92                     return String.valueOf(cell.getBooleanCellValue());
     93                 } else if (cell.getCellType() == cell.CELL_TYPE_NUMERIC) {
     94                     cell.setCellType(Cell.CELL_TYPE_STRING);
     95                     return String.valueOf(cell.getStringCellValue());
     96                 } else {
     97                     return String.valueOf(cell.getStringCellValue());
     98                 }
     99             } else {
    100                 return "";
    101             }
    102         }

    续写上传的excel并导出

      1 /**
      2      * 支持读取 xlsx
      3      * 
      4      * @param path
      5      * @param file 
      6      * @return
      7      * @throws Exception
      8      */
      9     public void readXlsxMessage(String path, HttpServletResponse response) throws Exception {
     10         InputStream is = new FileInputStream(path);
     11         OutputStream fileOut = response.getOutputStream();
     12         XSSFWorkbook xssfWorkbook = new XSSFWorkbook(is);
     13         if (is != null) {
     14             is.close();
     15         }
     16 
     17         for (int numSheet = 0; numSheet < xssfWorkbook.getNumberOfSheets(); numSheet++) {
     18             XSSFSheet xssfSheet = xssfWorkbook.getSheetAt(numSheet);
     19             if (xssfSheet == null) {
     20                 continue;
     21             }
     22             // Read the Row
     23             for (int rowNum = 1; rowNum <= xssfSheet.getLastRowNum(); rowNum++) {
     24                 XSSFRow xssfRow = xssfSheet.getRow(rowNum);
     25                 if (xssfRow != null) {
     26                     XSSFCell assetId = xssfRow.getCell(3);
     27                     XSSFCell customerCode = xssfRow.createCell(27);
     28 
     29                     if (StringUtils.isBlank(getValue(assetId))) {
     30                         continue;
     31                     }
                //从url获取需要写入的结果
    32 StringBuffer url = new StringBuffer("http://XXXXXXXXX?XXXXXX&xmlStr=<oss-request><property+name="searchKey"+value=""); 33 url.append(getValue(assetId)); 34 url.append(""/><property+name="searchType"+value="7"/></oss-request>"); 35 JSONObject getRes = HttpRequestUtil.httpGETRequest(url.toString().trim()); 36 if("0".equals(getRes.getJSONObject("result").getString("retCode"))){ 37 customerCode.setCellValue(getRes.getJSONObject("data").getString("customerCode")); 38 }else{ 39 customerCode.setCellValue("查询失败"); 40 } 41 } 42 } 43 } 44 response.setContentType("application/X-excel"); 45 response.setHeader("Content-Disposition", 46 "attachment;filename=" + new String("文件名.xlsx".getBytes("GBK"), "ISO-8859-1")); 47 try { 48 xssfWorkbook.write(fileOut); 49 } catch (Exception e) { 50 51 } 52 if (fileOut != null) { 53 fileOut.close(); 54 } 55 } 56 57 /** 58 * 59 * 读取excell文件 ,支持Xls 60 * 61 * @param path 62 * @param file 63 * @return 64 * @throws Exception 65 */ 66 public void readXlsMessage(String path,HttpServletResponse response) throws Exception { 67 OutputStream fileOut = response.getOutputStream(); 68 InputStream is = new FileInputStream(path); 69 HSSFWorkbook hssfWorkbook = new HSSFWorkbook(is); 70 if (is != null) { 71 is.close(); 72 } 73 74 for (int numSheet = 0; numSheet < hssfWorkbook.getNumberOfSheets(); numSheet++) { 75 HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(numSheet); 76 if (hssfSheet == null) { 77 continue; 78 } 79 // Read the Row 80 for (int rowNum = 1; rowNum <= hssfSheet.getLastRowNum(); rowNum++) { 81 HSSFRow hssfRow = hssfSheet.getRow(rowNum); 82 if (hssfRow != null) { 83 HSSFCell assetId = hssfRow.getCell(3); 84 HSSFCell customerCode = hssfRow.createCell(27); 85 if (StringUtils.isBlank(getValue(assetId))) { 86 continue; 87 } 88 StringBuffer url = new StringBuffer("http://XXX"); 89 url.append(getValue(assetId)); 90 url.append(""/><property+name="searchType"+value="7"/></oss-request>"); 91 JSONObject getRes = HttpRequestUtil.httpGETRequest(url.toString().trim()); 92 if(0==new Integer(getRes.getJSONObject("result").getString("retCode"))){ 93 JSONObject object = getRes.getJSONObject("data"); 94 String string = object.getString("customerCode"); 95 customerCode.setCellValue(getRes.getJSONObject("data").getString("customerCode")); 96 }else{ 97 customerCode.setCellValue("查询失败"); 98 } 99 } 100 } 101 } 102 response.setContentType("application/X-excel"); 103 response.setHeader("Content-Disposition", 104 "attachment;filename=" + new String("文件名.xls".getBytes("GBK"), "ISO-8859-1")); 105 try { 106 hssfWorkbook.write(fileOut); 107 } catch (Exception e) { 108 } 109 if (fileOut != null) { 110 fileOut.close(); 111 } 112 113 }

    新建excel并导出

     1 public void exportAssetFile(HttpServletResponse response, AssetFile assetFile)
     2             throws IOException {
     3         // Integer count = findYoukuSPAssetFileListCount(youkuAssetFile);
     4         /*
     5          * int pageSize=50000; int pageNo=0;
     6          */
     7         OutputStream fileOut = response.getOutputStream();
     8         SXSSFWorkbook wb = new SXSSFWorkbook(120);
     9         // int s=(count+50000)/pageSize;//页数sheet
    10 
    11         // int j = 1;//12         // for (int i = 0; i < s; i++) {
    13         Sheet sheet = wb.createSheet("sheet表名");
    14         Row header = sheet.createRow((short) 0);
    15         sheet.createFreezePane(0, 1, 0, 1);
    16         header.createCell(0).setCellValue("序号");
    17         header.createCell(1).setCellValue("资产id");
    18         header.createCell(2).setCellValue("资产名称");
    19         header.createCell(3).setCellValue("总集数");
    20         header.createCell(4).setCellValue("视频顺序");
    21         header.createCell(5).setCellValue("文件唯一ID");
    22         header.createCell(6).setCellValue("文件名称");
    23         header.createCell(7).setCellValue("创建时间");
    24         header.createCell(8).setCellValue("是否收费");
    25         header.createCell(9).setCellValue("AuditResult");
    26      //获取要写入的资产
    27         List<AssetFile> list = youkuAssetFileList(assetFile);
    28         /*
    29          * List<YoukuSpAssetFile> list =null; if(pageNo!=s){ list
    30          * =(List<YoukuSpAssetFile>)
    31          * youkuAssetFileList(youkuAssetFile,pageNo*pageSize,pageSize); }else
    32          * if(pageNo==s){ list =(List<YoukuSpAssetFile>)
    33          * youkuAssetFileList(youkuAssetFile,pageNo*pageSize,count%50000); }
    34          */
    35 
    36         // 写入sheet
    37         witerToSheet(sheet, list);
    38     //设置列宽
    39         for (int k = 0; k < 9; k++) {
    40             if (k == 6) {
    41                 sheet.setColumnWidth(6, (int) ((40 + 0.72) * 256));
    42             } else if (k == 2) {
    43                 sheet.setColumnWidth(2, (int) ((25 + 0.72) * 256));
    44             } else if (k == 8 || k == 9) {
    45                 sheet.setColumnWidth(8, (int) ((7 + 0.72) * 256));
    46                 sheet.setColumnWidth(9, (int) ((7 + 0.72) * 256));
    47             } else {
    48                 sheet.autoSizeColumn(k);
    49             }
    50         }
    51         // j=1;
    52         // pageNo++;
    53         // }
    54 
    55         SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
    56         Date time = new Date();
    57         String fileName = "YouKuSPAssetFile-" + sdf.format(time) + ".xlsx";
    58         response.setContentType("application/X-excel");
    59         response.setHeader("Content-Disposition",
    60                 "attachment;filename=" + new String(fileName.getBytes("GBK"), "ISO-8859-1"));
    61         try {
    62             wb.write(fileOut);
    63         } catch (Exception e) {
    64         }
    65         if (fileOut != null) {
    66             fileOut.close();
    67         }
    68     }
    69 
    70     private void witerToSheet(Sheet sheet, List<YoukuSpAssetFile> list) {
    71         int j = 1;
    72         for (AssetFile map : list) {
    73             Row row = sheet.createRow(j++);
    74             Cell cell0 = row.createCell(0);
    75             cell0.setCellValue((j - 1));
    76             Cell cell1 = row.createCell(1);
    77             cell1.setCellValue(String.valueOf(map.getAssetId()));
    78             Cell cell2 = row.createCell(2);
    79             cell2.setCellValue(String.valueOf(map.getAssetName()));
    80             Cell cell3 = row.createCell(3);
    81             cell3.setCellValue(String.valueOf(map.getItems()));
    82             Cell cell4 = row.createCell(4);
    83             cell4.setCellValue(String.valueOf(map.getSequence()));
    84             Cell cell5 = row.createCell(5);
    85             cell5.setCellValue(String.valueOf(map.getFileId()));
    86             Cell cell6 = row.createCell(6);
    87             cell6.setCellValue(String.valueOf(map.getFileName()));
    88             Cell cell7 = row.createCell(7);
    89             cell7.setCellValue(String.valueOf(
    90                     new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(map.getCreateTime().getTime())));
    91             Cell cell8 = row.createCell(8);
    92             cell8.setCellValue(String.valueOf(map.getPaid() != null && map.getPaid() == 0 ? "免费" : "收费"));
    93             Cell cell9 = row.createCell(9);
    94             cell9.setCellValue(String.valueOf(""));
    95         }
    96     }
  • 相关阅读:
    分享 35 套精美的 PSD 图标素材
    策略模式
    步步为营 .NET三层架构解析 二、数据库设计
    TFS安装与管理
    MMN实用架构过程概览
    Mvc学习
    三层架构[转]
    left join 和 left outer join 的区别
    300万条记录 like 和 charindex 函数性能比较
    jQuery插件InputLimitor实现文本框输入限制字数统计
  • 原文地址:https://www.cnblogs.com/onroad2019/p/11327401.html
Copyright © 2011-2022 走看看