依賴:
<dependency> <groupId>net.sf.jxls</groupId> <artifactId>jxls-core</artifactId> <version>1.0</version> </dependency> <dependency> <groupId>net.sf.jxls</groupId> <artifactId>jxls-reader</artifactId> <version>1.0</version> </dependency>
/** * 根據模版生成保存到指定位置 * @param pathTemplateFileName 模版路徑 * @param list * @param pathResultFileName 存放路徑 * @return */ public static boolean createExcel(String pathTemplateFileName, List<?> list, String pathResultFileName){ //創建xlstransformer對象 XLSTransformer transformer = new XLSTransformer(); //獲取java項目編譯后根路徑 //URL url = ExcelUtil.class.getClassLoader().getResource(""); //得到模板文件路徑 //String srcFilePath = url.getPath() + templateFileName; //String destFilePath = url.getPath() + resultFileName; Map<String,Object> beanParams = new HashMap<String,Object>(); beanParams.put("list", list); try { //生成Excel文件 transformer.transformXLS(pathTemplateFileName, beanParams,pathResultFileName ); return true; } catch (Exception e) { e.printStackTrace(); return false; } } /** * 根據模版生成 excel的工作簿 * @param pathTemplateFileName * @param list * @return */ public static Workbook createHSSFWorkbook(String pathTemplateFileName, List<?> list){ //創建XLSTransformer對象 XLSTransformer transformer = new XLSTransformer(); Map<String,Object> beanParams = new HashMap<String,Object>(); beanParams.put("list", list); Workbook hssfWorkbook=null; try { InputStream is = new BufferedInputStream(new FileInputStream(pathTemplateFileName)); hssfWorkbook = transformer.transformXLS(is, beanParams); is. close(); } catch (Exception e) { e.printStackTrace(); } return hssfWorkbook; } /** * 寫到輸入流中 * @param pathTemplateFileName * @param list */ public static InputStream getExceInput(String pathTemplateFileName, List<?> list) throws Exception { XLSTransformer transformer = new XLSTransformer(); Map<String,Object> beanParams = new HashMap<String,Object>(); beanParams.put("dateFormat",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")); beanParams.put("list", list); InputStream inputStream = new BufferedInputStream(new FileInputStream(pathTemplateFileName)); transformer.transformXLS(inputStream, beanParams); return inputStream; } public static boolean setExceOutput(String pathTemplateFileName, List<?> list,OutputStream outputStream){ XLSTransformer transformer = new XLSTransformer(); Map<String,Object> beanParams = new HashMap<String,Object>(); InputStream is=null; try { beanParams.put("list", list); is = new BufferedInputStream(new FileInputStream(pathTemplateFileName)); Workbook wb = transformer.transformXLS(is, beanParams); wb.write(outputStream); return true; }catch (ParsePropertyException ex){ ex.printStackTrace(); }catch (InvalidFormatException ex){ ex.printStackTrace(); }catch (IOException ex){ ex.printStackTrace(); } finally { if (is!=null){ try { is.close(); } catch (IOException e) { e.printStackTrace(); } } } return false; } /** * 裝配 返回數據流水 * @param pathTemplateFileName * @param list * @return */ public static byte[] getExceByte(String pathTemplateFileName, List<?> list){ //創建XLSTransformer對象 XLSTransformer transformer = new XLSTransformer(); Map<String,Object> beanParams = new HashMap<String,Object>(); beanParams.put("list", list); byte[] bytes=null; InputStream is=null; ByteArrayOutputStream out=null; try { is = new BufferedInputStream(new FileInputStream(pathTemplateFileName)); Workbook wb = transformer.transformXLS(is, beanParams); out = new ByteArrayOutputStream(); wb.write(out); bytes = out.toByteArray(); } catch (Exception e) { e.printStackTrace(); }finally { try { if (is!=null) { is.close(); } } catch (IOException e) { e.printStackTrace(); } try { if (out!=null) { out.close(); } } catch (IOException e) { e.printStackTrace(); } } return bytes; } /** *根據工作博導出集合對象 * @param wb * @param sheetAt 解析那個sheet頁 * @param statIndex 那一行開始 * @param tClass 解析目標對象 * @param <T> * @return * @throws IllegalAccessException * @throws instantiationexception */ public static <T> List<T> getList(Workbook wb,int sheetAt,int statIndex,Class<T> tClass ) throws IllegalAccessException, InstantiationException { List<T> list=new ArrayList<>(); Sheet sheet = wb.getSheetAt(sheetAt); int lastRowNum = sheet.getLastRowNum(); for (int i=statIndex;i<=lastRowNum;i++){ Row row = sheet.getRow(i); if(row==null){ continue; } T t= tClass.newInstance(); Field[] declaredFields = tClass.getDeclaredFields(); for (Field f : declaredFields) { f.setAccessible(true); //設置些屬性是可以訪問的 //Object val = f.get(t);//得到此屬性的值 //String name = f.getName();//獲得屬性名 ExcelIndex annotation = f.getAnnotation(ExcelIndex.class); if (annotation==null){ continue; } Cell cell = row.getCell(annotation.value()); f.set(t,getFCellValue(cell)); } list.add(t); } return list; } /** * 獲取單元格的值 * @param cell * @return */ private static Object getFCellValue(Cell cell){ if(cell==null){ return null; } switch (cell.getCellType()) { case 0: // 數字 return cell.getNumericCellValue(); case 1: // 字符串 return cell.getStringCellValue(); case 4: // Boolean return cell.getBooleanCellValue(); case 2: // 公式 return cell.getCellFormula(); case 3: // 空值 return null; case 5: // 故障 return null; default://未知 return null; } } public static void main(String[] args) throws Throwable { createExcel("D:/555.xlsx",new ArrayList<>(),"D:/test.xlsx"); }
163867.html
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...
在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...
在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...
亞馬遜echo0-com1、重新打開“ai”該軟件,將圖文拖入到該軟件里。2、將所有圖片無限擴大會覺得圖文有些虛化背景,選擇“圖像內容描繪出”下拉選項中的“低信噪比照片”。3、稍等片刻,進入頁面“快速擴展”兩個選項。4、這時所有圖片已經變為矢量軟件,清晰度很明顯,選項卡去選擇圖形后,可以看到去選擇的基本圖形都是由添加錨點工具將組。5、鼠標右鍵點擊圖片素材,在下拉列表中可以選擇“從明年起配屬”。6、...
北京青年是哪年開播的?《北京青年》是由北京新寶源影視投資有限公司、北京完美影視傳媒有限公司出品,趙寶剛、王贏執導,李晨、馬謖、杜淳、克勞迪婭、姚笛主演的電視劇,于2012年8月首播。北京青年導演?《北京青年》是由北京新寶源影視投資有限公司、北京完美影視傳媒有限公司聯合出品,趙寶剛、王贏執導,李晨、馬謖、杜淳、克勞迪婭、姚笛、任忠、何剛、張莉等主演的都市情感劇。該劇講述了四個北京年輕人為了各自的理想...
網上聊天別人總說sky到底是什么意思?網上?女孩子一開始都很害羞,只要你能感動她,她就會喜歡你的。我建議你在車站見她。女孩們還是喜歡口是心非。她的反應可能還沒有準備好墜入愛河。我不知道她在找什么樣的搭檔sky網絡電話怎么樣?Sky自2012年以來一直是Sky的忠實用戶。然而,15年來,人們的態度已經從期待到失望再到絕望?;ヂ摼W電話過去工作良好,它是第一個提供電力顯示功能。一開始我喜歡?,F在越來越難...