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     }
  • 相关阅读:
    HOJ 2139 Spiderman's workout(动态规划)
    FZU 2107 Hua Rong Dao(dfs)
    Java 第十一届 蓝桥杯 省模拟赛 计算机存储中有多少字节
    Java 第十一届 蓝桥杯 省模拟赛 计算机存储中有多少字节
    Java 第十一届 蓝桥杯 省模拟赛 计算机存储中有多少字节
    Java 第十一届 蓝桥杯 省模拟赛 合法括号序列
    Java 第十一届 蓝桥杯 省模拟赛 合法括号序列
    Java 第十一届 蓝桥杯 省模拟赛 合法括号序列
    Java 第十一届 蓝桥杯 省模拟赛 无向连通图最少包含多少条边
    Java 第十一届 蓝桥杯 省模拟赛 无向连通图最少包含多少条边
  • 原文地址:https://www.cnblogs.com/onroad2019/p/11327401.html
Copyright © 2011-2022 走看看