亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

java poi導出圖片到excel示例代碼

2024-07-14 08:43:50
字體:
來源:轉載
供稿:網友

本文實例為大家分享了java使用poi導出圖片到Excel的具體代碼,供大家參考,具體內容如下

java,poi,導出圖片,excel,代碼

代碼實現

Controller

/** * 導出志愿者/人才數據 * @param talent_type * @return */@RequestMapping("/exportData")public void exportData(Integer talent_type, HttpServletResponse response) {  String fileId = UUID.randomUUID().toString().replace("-", "");  Map<String, Object> param = new HashMap<>() ;  param.put("talent_type", talent_type) ;  try {   List<Map<String, Object>> volunteerMapList = volunteerService.getExportData(param) ;   String rootPath = SysConfigManager.getInstance().getText("/config/sys/rootPath");   String filePath = rootPath + "/" + fileId + ".xlsx" ;   volunteerService.exportData(volunteerMapList, filePath) ;   // 下載   FileInputStream inputStream = null;   try{     //設置發送到客戶端的響應內容類型     response.reset();     response.setContentLength((int) new File(filePath).length());     response.setContentType("application/octet-stream");     response.addHeader("Content-Disposition", "attachment; filename=/"" + URLEncoder.encode("文件名.xlsx", "UTF-8")+ "/"");     //讀取本地圖片輸入流     inputStream = new FileInputStream(filePath);     // 循環取出流中的數據     byte[] b = new byte[1024];     int len;     while ((len = inputStream.read(b)) > 0)      response.getOutputStream().write(b, 0, len);   } finally{     if(inputStream != null){      inputStream.close();     }   }   logger.debug("導出志愿者/人才數據成功!");  } catch (Exception e) {   e.printStackTrace();   logger.error("導出志愿者/人才數據異常!");  }}

Service

public void exportData(List<Map<String, Object>> volunteerMapList, String filePath) throws Exception {   String[] alias = {"頭像", "名稱", "個人/團體", "志愿者/人才", "性別", "生日", "手機號",       "身份證", "省份", "市", "區/縣", "詳細地址", "郵箱", "政治面貌", "學歷", "民族",       "職業", "團隊人數", "藝術特長", "介紹"};   String[] keys = {"photo", "name", "type", "talent_type", "sex", "birth_day", "mobile",       "idcard", "province", "city", "county", "address", "email", "political",       "education", "nation", "profession", "member_count", "art_spetiality", "content"};   File file = new File(filePath);   if (!file.exists()) file.createNewFile();   FileOutputStream fileOutput = new FileOutputStream(file);   XSSFWorkbook workbook = new XSSFWorkbook();   int sheetSize = volunteerMapList.size() + 50;   double sheetNo = Math.ceil(volunteerMapList.size() / sheetSize);   String photoImgPath = SysConfigManager.getInstance().getText("/config/sys/rootPath") ;   for (int index = 0; index <= sheetNo; index++) {     XSSFSheet sheet = workbook.createSheet();     workbook.setSheetName(index, "人才、志愿者" + index);     XSSFRow row = sheet.createRow(0);     sheet.setColumnWidth(0, 2048);     XSSFCell cell;     XSSFCellStyle cellStyle = workbook.createCellStyle();     XSSFFont font = workbook.createFont();     font.setBoldweight(XSSFFont.BOLDWEIGHT_BOLD);     // 居中     cellStyle.setAlignment(XSSFCellStyle.ALIGN_CENTER);     // 加粗     cellStyle.setFont(font);     //創建標題     for (int i = 0; i < alias.length; i++) {       cell = row.createCell(i);       cell.setCellValue(alias[i]);       cell.setCellStyle(cellStyle);     }     int startNo = index * sheetSize;     int endNo = Math.min(startNo + sheetSize, volunteerMapList.size());     cellStyle = workbook.createCellStyle();     // 居中     cellStyle.setAlignment(XSSFCellStyle.ALIGN_CENTER);     cellStyle.setVerticalAlignment(XSSFCellStyle.VERTICAL_CENTER);     // 寫入各條記錄,每條記錄對應excel表中的一行     for (int i = startNo; i < endNo; i++) {       int rowNum = i + 1 - startNo ;       row = sheet.createRow(rowNum);       Map<String, Object> map = (Map<String, Object>) volunteerMapList.get(i);       for (int j = 0; j < keys.length; j++) {         cell = row.createCell(j);         String key = keys[j] ;         if (key.equals("photo")){           sheet.addMergedRegion(new CellRangeAddress(i + 1,i + 1,i + 1,i + 1)) ;           // 頭像           File photoFile = new File(photoImgPath + map.get(key)) ;           if (photoFile.exists()){             BufferedImage bufferedImage = ImageIO.read(photoFile) ;             ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();             ImageIO.write(bufferedImage, "jpg", byteArrayOut);             byte[] data = byteArrayOut.toByteArray();             XSSFDrawing drawingPatriarch = sheet.createDrawingPatriarch();             XSSFClientAnchor anchor = new XSSFClientAnchor(480, 30, 700, 250, (short)0, i + 1, (short) 1, i + 2);             drawingPatriarch.createPicture(anchor, workbook.addPicture(data, XSSFWorkbook.PICTURE_TYPE_JPEG));             sheet.setColumnWidth((short)500, (short)500);             row.setHeight((short)500);           } else {             cell.setCellType(XSSFCell.CELL_TYPE_STRING);             cell.setCellValue("");           }         } else {           cell.setCellType(XSSFCell.CELL_TYPE_STRING);           Object value = map.get(key);           cell.setCellValue(value == null ? "" : value.toString());           cell.setCellStyle(cellStyle);         }       }     }     // 設置列寬    for (int i = 1; i < alias.length; i++)       sheet.autoSizeColumn(i);     // 處理中文不能自動調整列寬的問題this.setSizeColumn(sheet, alias.length);   }   fileOutput.flush();   workbook.write(fileOutput);   fileOutput.close(); }  // 自適應寬度(中文支持) private void setSizeColumn(XSSFSheet sheet, int size) {   for (int columnNum = 0; columnNum < size; columnNum++) {     int columnWidth = sheet.getColumnWidth(columnNum) / 256;     for (int rowNum = 0; rowNum <= sheet.getLastRowNum(); rowNum++) {       XSSFRow currentRow;       //當前行未被使用過       if (sheet.getRow(rowNum) == null) {         currentRow = sheet.createRow(rowNum);       } else {         currentRow = sheet.getRow(rowNum);       }       if (currentRow.getCell(columnNum) != null) {         XSSFCell currentCell = currentRow.getCell(columnNum);         if (currentCell.getCellType() == XSSFCell.CELL_TYPE_STRING) {           int length = currentCell.getStringCellValue().getBytes().length;           if (columnWidth < length) columnWidth = length;         }       }     }     columnWidth = columnWidth * 256 ;     sheet.setColumnWidth(columnNum, columnWidth >= 65280 ? 6000 : columnWidth);   } }

以上所述是小編給大家介紹java poi導出圖片到excel示例代碼解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
在线观看欧美日韩国产| 日韩女优在线播放| 国产主播欧美精品| 久久精品国产成人精品| 欧美日韩人人澡狠狠躁视频| 亚洲自拍偷拍福利| 国产精品久久久久久超碰| 亚洲国产精品yw在线观看| 久久久久日韩精品久久久男男| 欧美一级大片视频| 国产一区在线播放| 777国产偷窥盗摄精品视频| 亚洲a级在线观看| 日韩av第一页| 亚洲成人精品视频在线观看| 欧美日韩国产激情| 欧美性色19p| 国产美女直播视频一区| 日韩欧美高清视频| 亚洲欧美日韩天堂| 亚洲国产精久久久久久久| 久久精品国产69国产精品亚洲| 国内精品久久久久久中文字幕| 8090理伦午夜在线电影| 日本午夜精品理论片a级appf发布| 色噜噜久久综合伊人一本| 欧美在线www| 国产精品尤物福利片在线观看| 国产精品一区二区久久精品| 日本一区二区三区四区视频| 精品色蜜蜜精品视频在线观看| 日韩av影片在线观看| 亚洲电影天堂av| 97视频在线观看播放| 国产日韩在线精品av| 国产亚洲成精品久久| 久久久久国产精品www| 欧美日韩国产中字| 久久视频在线播放| 亚洲免费av片| 国产精品美女视频网站| 成人激情电影一区二区| 成人在线精品视频| 亚洲人成网站免费播放| 国产亚洲日本欧美韩国| 欧美激情精品久久久久久免费印度| 日韩毛片在线看| 日韩精品在线私人| 欧美高清视频免费观看| 欧美激情一级欧美精品| 欧美三级欧美成人高清www| 国产精选久久久久久| 亚洲va欧美va国产综合剧情| 久久夜色精品国产| 日韩暖暖在线视频| 九九九热精品免费视频观看网站| 欧美激情亚洲国产| 久久久久久久激情视频| 精品国产欧美一区二区三区成人| 日韩中文字幕网址| 亚洲va久久久噜噜噜| 成人欧美一区二区三区在线湿哒哒| 国产日韩欧美日韩| xvideos亚洲人网站| 久久久成人精品视频| 永久555www成人免费| 国产日韩综合一区二区性色av| 国产精品专区h在线观看| 国产精品一区av| 日韩成人激情视频| 青草热久免费精品视频| 中文字幕视频在线免费欧美日韩综合在线看| 91av网站在线播放| 午夜精品在线视频| 国产精品久久久久高潮| 国产成人一区二区| 亚洲久久久久久久久久| 日韩人体视频一二区| 国产成人小视频在线观看| 中文字幕在线日韩| 中文字幕欧美日韩精品| 国产精品免费看久久久香蕉| 亚洲成人av片在线观看| 中文字幕av一区中文字幕天堂| 亚洲欧美激情另类校园| 日韩电影免费观看在线| 欧美性高跟鞋xxxxhd| 精品人伦一区二区三区蜜桃网站| 午夜欧美大片免费观看| 国产xxx69麻豆国语对白| 日韩h在线观看| 精品国产91久久久久久老师| 欧美精品一二区| 国产视频欧美视频| 欧美高清视频在线| 成人在线视频网站| 欧美洲成人男女午夜视频| 日韩av影院在线观看| 国产精品日韩精品| 欧美日在线观看| 韩曰欧美视频免费观看| 成人免费在线视频网站| 中文字幕最新精品| 国产成人在线亚洲欧美| 中文字幕精品影院| 国产精品日韩一区| 国产精品久久久久久久久久久久久久| 日韩精品在线免费观看视频| 色伦专区97中文字幕| 国产成人精品久久久| 午夜精品福利在线观看| 91久久精品视频| 久久久精品2019中文字幕神马| 日韩av中文字幕在线免费观看| 国产97在线|日韩| 亚洲欧美一区二区精品久久久| 国产91九色视频| 久久精品国产综合| 日韩激情视频在线播放| 国产精品人人做人人爽| 性日韩欧美在线视频| 亚洲护士老师的毛茸茸最新章节| 亚洲人成网站色ww在线| 国产精品免费网站| 91免费国产网站| 欧美成人午夜视频| 欧美性生交xxxxx久久久| 国产精品久久久久久影视| 57pao成人永久免费视频| 久久精品视频在线观看| 欧美丰满片xxx777| 亚洲精品第一国产综合精品| 奇米4444一区二区三区| www国产亚洲精品久久网站| 亚洲天堂男人天堂女人天堂| 国产一区二区在线免费视频| 理论片在线不卡免费观看| 韩国欧美亚洲国产| 亚洲肉体裸体xxxx137| 亚洲欧美日韩天堂| 欧美色xxxx| 久久99国产综合精品女同| 国产女人精品视频| 热久久99这里有精品| 亚洲电影免费观看高清完整版在线观看| 亚洲精品白浆高清久久久久久| 91视频九色网站| 欧美伊久线香蕉线新在线| 欧美日韩ab片| 亚洲国产欧美一区二区丝袜黑人| 久久视频在线免费观看| 亚洲精品在线观看www| 久久99青青精品免费观看| 日韩av手机在线| 国产精品一二三视频| 亚洲资源在线看| 国产精品久久77777| 亚洲最大成人网色| 丝袜美腿亚洲一区二区| 2018日韩中文字幕| 亚洲免费成人av电影| 永久免费看mv网站入口亚洲| 日韩精品在线免费| 91最新国产视频|