整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          Apache POI使用詳解(看完這篇基本上能應(yīng)付工

          Apache POI使用詳解(看完這篇基本上能應(yīng)付工作中常用的excel)

          號(hào)主要用于分享企業(yè)中常用的技術(shù),更加側(cè)重于實(shí)用,歡迎關(guān)注,便于瀏覽其它更多實(shí)用的歷史文章。

          一 :簡(jiǎn)介

          開發(fā)中經(jīng)常會(huì)設(shè)計(jì)到excel的處理,如導(dǎo)出Excel,導(dǎo)入Excel到數(shù)據(jù)庫(kù)中,操作Excel目前有兩個(gè)框架,一個(gè)是apache 的poi, 另一個(gè)是 Java Excel

          Apache POI 簡(jiǎn)介是用Java編寫的免費(fèi)開源的跨平臺(tái)的 Java API,Apache POI提供API給Java程式對(duì)Microsoft Office(Excel、WORD、PowerPoint、Visio等)格式檔案讀和寫的功能。POI為“Poor Obfuscation Implementation”的首字母縮寫,意為“可憐的模糊實(shí)現(xiàn)”。

          官方主頁: http://poi.apache.org/index.html

          API文檔: http://poi.apache.org/apidocs/index.html

          Java Excel是一開放源碼項(xiàng)目,通過它Java開發(fā)人員可以讀取Excel文件的內(nèi)容、創(chuàng)建新的Excel文件、更新已經(jīng)存在的Excel文件。jxl 由于其小巧 易用的特點(diǎn), 逐漸已經(jīng)取代了 POI-excel的地位, 成為了越來越多的java開發(fā)人員生成excel文件的首選。

          由于apache poi 在項(xiàng)目中用的比較多,本篇博客只講解apache poi,不講jxl

          二:Apache POI常用的類

          • HSSF - 提供讀寫Microsoft Excel XLS格式檔案的功能。
          • XSSF - 提供讀寫Microsoft Excel OOXML XLSX格式檔案的功能。
          • HWPF - 提供讀寫Microsoft Word DOC97格式檔案的功能。
          • XWPF - 提供讀寫Microsoft Word DOC2003格式檔案的功能。
          • HSLF - 提供讀寫Microsoft PowerPoint格式檔案的功能。
          • HDGF - 提供讀Microsoft Visio格式檔案的功能。
          • HPBF - 提供讀Microsoft Publisher格式檔案的功能。
          • HSMF - 提供讀Microsoft Outlook格式檔案的功能。

          在開發(fā)中我們經(jīng)常使用HSSF用來操作Excel處理表格數(shù)據(jù),對(duì)于其它的不經(jīng)常使用。

          HSSF 是Horrible SpreadSheet Format的縮寫,通過HSSF,你可以用純Java代碼來讀取、寫入、修改Excel文件。HSSF 為讀取操作提供了兩類API:usermodel和eventusermodel,即“用戶模型”和“事件-用戶模型”。

          常用的類和方法

          • HSSFWorkbook :工作簿,代表一個(gè)excel的整個(gè)文檔
          • HSSFWorkbook();// 創(chuàng)建一個(gè)新的工作簿
          • HSSFWorkbook(InputStream inputStream); // 創(chuàng)建一個(gè)關(guān)聯(lián)輸入流的工作簿,可以將一個(gè)excel文件封裝成工作簿
          • HSSFSheet createSheet(String sheetname); 創(chuàng)建一個(gè)新的Sheet
          • HSSFSheet getSheet(String sheetName); 通過名稱獲取Sheet
          • HSSFSheet getSheetAt(int index); // 通過索引獲取Sheet,索引從0開始
          • HSSFCellStyle createCellStyle(); 創(chuàng)建單元格樣式
          • int getNumberOfSheets(); 獲取sheet的個(gè)數(shù)
          • setActiveSheet(int index); 設(shè)置默認(rèn)選中的工作表
          • write();
          • write(File newFile);
          • write(OutputStream stream);
          • HSSFSheet:工作表
          • HSSFRow createRow(int rownum); 創(chuàng)建新行,需要指定行號(hào),行號(hào)從0開始
          • HSSFRow getRow(int index); 根據(jù)索引獲取指定的行
          • int addMergedRegion(CellRangeAddress region); 合并單元格
          • CellRangeAddress(int firstRow, int lastRow, int firstCol, int lastCol); 單元格范圍, 用于合并單元格,需要指定要合并的首行、最后一行、首列、最后一列。
          • autoSizeColumn(int column); 自動(dòng)調(diào)整列的寬度來適應(yīng)內(nèi)容
          • getLastRowNum(); 獲取最后的行的索引,沒有行或者只有一行的時(shí)候返回0
          • setColumnWidth(int columnIndex, int width); 設(shè)置某一列的寬度,width=字符個(gè)數(shù) * 256,例如20個(gè)字符的寬度就是20 * 256
          • HSSFRow :行
          • HSSFCell createCell(int column); 創(chuàng)建新的單元格
          • HSSFCell setCell(shot index);
          • HSSFCell getCell(shot index);
          • setRowStyle(HSSFCellStyle style); 設(shè)置行樣式
          • short getLastCellNum(); 獲取最后的單元格號(hào),如果單元格有第一個(gè)開始算,lastCellNum就是列的個(gè)數(shù)
          • setHeightInPoints(float height); 設(shè)置行的高度
          • HSSFCell:?jiǎn)卧?/li>
          • setCellValue(String value); 設(shè)置單元格的值
          • setCellType(); 設(shè)置單元格類型,如 字符串、數(shù)字、布爾等
          • setCellStyle(); 設(shè)置單元格樣式
          • String getStringCellValue(); 獲取單元格中的字符串值
          • setCellStyle(HSSFCellStyle style); 設(shè)置單元格樣式,例如字體、加粗、格式化
          • setCellFormula(String formula); 設(shè)置計(jì)算公式,計(jì)算的結(jié)果作為單元格的值,也提供了異常常用的函數(shù),如求和"sum(A1,C1)"、日期函數(shù)、字符串相關(guān)函數(shù)、CountIf和SumIf函數(shù)、隨機(jī)數(shù)函數(shù)等
          • HSSFCellStyle :?jiǎn)卧駱邮?/li>
          • setFont(Font font); 為單元格設(shè)置字體樣式
          • setAlignment(HorizontalAlignment align); // 設(shè)置水平對(duì)齊方式
          • setVerticalAlignment(VerticalAlignment align); // 設(shè)置垂直對(duì)齊方式
          • setFillPattern(FillPatternType fp);
          • setFillForegroundColor(short bg); 設(shè)置前景色
          • setFillBackgroundColor(short bg); 設(shè)置背景顏色
          • HSSFFont:字體,
          • setColor(short color);// 設(shè)置字體顏色
          • setBold(boolean bold); // 設(shè)置是否粗體
          • setItalic(boolean italic); 設(shè)置傾斜
          • setUnderline(byte underline); 設(shè)置下劃線
          • HSSFName:名稱
          • HSSFDataFormat :日期格式化
          • HSSFHeader : Sheet的頭部
          • HSSFFooter :Sheet的尾部
          • HSSFDateUtil :日期工具
          • HSSFPrintSetup :打印設(shè)置
          • HSSFErrorConstants:錯(cuò)誤信息表

          Excel中的工作簿、工作表、行、單元格中的關(guān)系:

          • 一個(gè)Excel文件對(duì)應(yīng)于一個(gè)workbook(HSSFWorkbook),
          • 一個(gè)workbook可以有多個(gè)sheet(HSSFSheet)組成,
          • 一個(gè)sheet是由多個(gè)row(HSSFRow)組成,
          • 一個(gè)row是由多個(gè)cell(HSSFCell)組成

          三:基礎(chǔ)示例

          首先引入apache poi的依賴

          <dependency> 
           <groupId>org.apache.poi</groupId> 
           <artifactId>poi</artifactId> 
           <version>3.8</version> 
          </dependency>

          示例一:在桌面上生成一個(gè)Excel文件

          public static void createExcel() throws IOException{
          	// 獲取桌面路徑
          	FileSystemView fsv=FileSystemView.getFileSystemView();
          	String desktop=fsv.getHomeDirectory().getPath();
          	String filePath=desktop + "/template.xls";
          	
          	File file=new File(filePath);
          	OutputStream outputStream=new FileOutputStream(file);
          	HSSFWorkbook workbook=new HSSFWorkbook();
          	HSSFSheet sheet=workbook.createSheet("Sheet1");
          	HSSFRow row=sheet.createRow(0);
          	row.createCell(0).setCellValue("id");
          	row.createCell(1).setCellValue("訂單號(hào)");
          	row.createCell(2).setCellValue("下單時(shí)間");
          	row.createCell(3).setCellValue("個(gè)數(shù)");
          	row.createCell(4).setCellValue("單價(jià)");
          	row.createCell(5).setCellValue("訂單金額");
          	row.setHeightInPoints(30); // 設(shè)置行的高度
          	
          	HSSFRow row1=sheet.createRow(1);
          	row1.createCell(0).setCellValue("1");
          	row1.createCell(1).setCellValue("NO00001");
          	
          	// 日期格式化
          	HSSFCellStyle cellStyle2=workbook.createCellStyle();
          	HSSFCreationHelper creationHelper=workbook.getCreationHelper();
          	cellStyle2.setDataFormat(creationHelper.createDataFormat().getFormat("yyyy-MM-dd HH:mm:ss"));
          	sheet.setColumnWidth(2, 20 * 256); // 設(shè)置列的寬度
          	
          	HSSFCell cell2=row1.createCell(2);
          	cell2.setCellStyle(cellStyle2);
          	cell2.setCellValue(new Date());
          	
          	row1.createCell(3).setCellValue(2);
          	
          	
          	// 保留兩位小數(shù)
          	HSSFCellStyle cellStyle3=workbook.createCellStyle();
          	cellStyle3.setDataFormat(HSSFDataFormat.getBuiltinFormat("0.00"));
          	HSSFCell cell4=row1.createCell(4);
          	cell4.setCellStyle(cellStyle3);
          	cell4.setCellValue(29.5);
          	
          	
          	// 貨幣格式化
          	HSSFCellStyle cellStyle4=workbook.createCellStyle();
          	HSSFFont font=workbook.createFont();
          	font.setFontName("華文行楷");
          	font.setFontHeightInPoints((short)15);
          	font.setColor(HSSFColor.RED.index);
          	cellStyle4.setFont(font);
          	
          	HSSFCell cell5=row1.createCell(5);
          	cell5.setCellFormula("D2*E2"); // 設(shè)置計(jì)算公式
          	
          	// 獲取計(jì)算公式的值
          	HSSFFormulaEvaluator e=new HSSFFormulaEvaluator(workbook);
          	cell5=e.evaluateInCell(cell5);
          	System.out.println(cell5.getNumericCellValue());
          	
          	workbook.setActiveSheet(0);
          	workbook.write(outputStream);
          	outputStream.close();
          }

          示例2:讀取Excel,解析數(shù)據(jù)

          public static void readExcel() throws IOException{
          	FileSystemView fsv=FileSystemView.getFileSystemView();
          	String desktop=fsv.getHomeDirectory().getPath();
          	String filePath=desktop + "/template.xls";
          	
          	FileInputStream fileInputStream=new FileInputStream(filePath);
          	BufferedInputStream bufferedInputStream=new BufferedInputStream(fileInputStream);
          	POIFSFileSystem fileSystem=new POIFSFileSystem(bufferedInputStream);
          	HSSFWorkbook workbook=new HSSFWorkbook(fileSystem);
          	HSSFSheet sheet=workbook.getSheet("Sheet1");
          	
          	int lastRowIndex=sheet.getLastRowNum();
          	System.out.println(lastRowIndex);
          	for (int i=0; i <=lastRowIndex; i++) {
          		HSSFRow row=sheet.getRow(i);
          		if (row==null) { break; }
          		
          		short lastCellNum=row.getLastCellNum();
          		for (int j=0; j < lastCellNum; j++) {
          			String cellValue=row.getCell(j).getStringCellValue();
          			System.out.println(cellValue);
          		}
          	}
          	
          	
          	bufferedInputStream.close();
          }

          四:Java Web 中導(dǎo)出和導(dǎo)入Excel

          1、導(dǎo)出示例

          @SuppressWarnings("resource")
          @RequestMapping("/export") 
          public void exportExcel(HttpServletResponse response, HttpSession session, String name) throws Exception { 
          	
          	String[] tableHeaders={"id", "姓名", "年齡"}; 
          	
          	HSSFWorkbook workbook=new HSSFWorkbook();
          	HSSFSheet sheet=workbook.createSheet("Sheet1");
          	HSSFCellStyle cellStyle=workbook.createCellStyle(); 
          	cellStyle.setAlignment(HorizontalAlignment.CENTER); 
          	cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
          	
          	Font font=workbook.createFont(); 
          	font.setColor(HSSFColor.RED.index); 
          	font.setBold(true);
          	cellStyle.setFont(font);
          	
          	// 將第一行的三個(gè)單元格給合并
          	sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 2));
          	HSSFRow row=sheet.createRow(0);
          	HSSFCell beginCell=row.createCell(0);
          	beginCell.setCellValue("通訊錄");	
          	beginCell.setCellStyle(cellStyle);
          	
          	row=sheet.createRow(1);
          	// 創(chuàng)建表頭
          	for (int i=0; i < tableHeaders.length; i++) {
          		HSSFCell cell=row.createCell(i);
          		cell.setCellValue(tableHeaders[i]);
          		cell.setCellStyle(cellStyle); 
          	}
          	
          	List<User> users=new ArrayList<>();
          	users.add(new User(1L, "張三", 20));
          	users.add(new User(2L, "李四", 21));
          	users.add(new User(3L, "王五", 22));
          	
          	for (int i=0; i < users.size(); i++) {
          		row=sheet.createRow(i + 2);
          		
          		User user=users.get(i);
          		row.createCell(0).setCellValue(user.getId()); 
          		row.createCell(1).setCellValue(user.getName()); 
          		row.createCell(2).setCellValue(user.getAge()); 
          	}
          	
          	OutputStream outputStream=response.getOutputStream(); 
          	response.reset(); 
          	response.setContentType("application/vnd.ms-excel"); 
          	response.setHeader("Content-disposition", "attachment;filename=template.xls"); 
          	workbook.write(outputStream);
          	outputStream.flush(); 
          	outputStream.close();
          }

          2、導(dǎo)入示例

          1、使用SpringMVC上傳文件,需要用到commons-fileupload

          <dependency>
          	<groupId>commons-fileupload</groupId>
          	<artifactId>commons-fileupload</artifactId>
          	<version>1.3</version>
          </dependency>

          2、需要在spring的配置文件中配置一下multipartResolver

          <bean name="multipartResolver" 
           	class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
          	<property name="defaultEncoding" value="UTF-8" />
          </bean>

          3、index.jsp

          <a href="/Spring-Mybatis-Druid/user/export">導(dǎo)出</a> <br/>
          <form action="/Spring-Mybatis-Druid/user/import" enctype="multipart/form-data" method="post">
          	<input type="file" name="file"/> 
          	<input type="submit" value="導(dǎo)入Excel">
          </form>

          4、解析上傳的.xls文件

          @SuppressWarnings("resource")
          @RequestMapping("/import")
          public void importExcel(@RequestParam("file") MultipartFile file) throws Exception{
          	InputStream inputStream=file.getInputStream();
          	BufferedInputStream bufferedInputStream=new BufferedInputStream(inputStream);
          	POIFSFileSystem fileSystem=new POIFSFileSystem(bufferedInputStream);
          	HSSFWorkbook workbook=new HSSFWorkbook(fileSystem);
          	//HSSFWorkbook workbook=new HSSFWorkbook(file.getInputStream());
          	HSSFSheet sheet=workbook.getSheetAt(0);
          	
          	int lastRowNum=sheet.getLastRowNum();
          	for (int i=2; i <=lastRowNum; i++) {
          		HSSFRow row=sheet.getRow(i);
          		int id=(int) row.getCell(0).getNumericCellValue();
          		String name=row.getCell(1).getStringCellValue();
          		int age=(int) row.getCell(2).getNumericCellValue();
          		
          		System.out.println(id + "-" + name + "-" + age);
          	}
          }

          導(dǎo)出效果:

          導(dǎo)入效果:

          實(shí)戰(zhàn)錄》導(dǎo)語

          云端衛(wèi)士《實(shí)戰(zhàn)錄》欄目定期會(huì)向粉絲朋友們分享一些在開發(fā)運(yùn)維中的經(jīng)驗(yàn)和技巧,2017年我們將一如既往地為朋友們奉獻(xiàn)更多優(yōu)質(zhì)內(nèi)容。本期分享人為云端衛(wèi)士安全運(yùn)營(yíng)工程師史懷周,主要介紹Java中多重格式報(bào)表導(dǎo)出方案比較。

          系統(tǒng)中經(jīng)常存在導(dǎo)出報(bào)告的需求,而導(dǎo)出的框架五花八門,該如何選擇呢?

          本文對(duì)幾種常見的框架進(jìn)行比較,希望可以在遇到導(dǎo)出需求時(shí),為你提供一些參考。常見的導(dǎo)出格式包括Word、 Excel和PDF等,下面針對(duì)對(duì)這三種格式進(jìn)行說明。

          Word

          Word一般用于導(dǎo)出包含圖片,表格等的分析匯總類報(bào)告。

          1.JACOB

          jacob的原理是使用自帶的DLL動(dòng)態(tài)鏈接庫(kù),通過JNDI的方式實(shí)現(xiàn)對(duì)COM程序的調(diào)用。它要求主機(jī)必須是Windows平臺(tái),當(dāng)大量請(qǐng)求同時(shí)操作時(shí),有一定幾率做成office資源的死鎖。種種情況都是我們不能接受的,所以適用面不廣。

          2.java2word

          java2word是通過java api調(diào)用MS Office文檔的組件。可以實(shí)現(xiàn)打開文檔,創(chuàng)建文檔,插入圖片,創(chuàng)建表格等多種操作。但同樣的,必須要在Windows平臺(tái)上才能使用。所以也不納入考慮范圍。

          3.POI

          POI出了可以導(dǎo)出Excel,還可以導(dǎo)出Word。相信很多人壓根沒有想到,但是POI對(duì)word的支持十分有限,不能設(shè)置樣式。如果導(dǎo)出的報(bào)表格式比較復(fù)雜,這種方案也是愛莫能助的。

          4.FreeMarker

          Freemarker是模板工具,而word是文檔,兩者如何搭配呢?其實(shí)很簡(jiǎn)單。word允許通過Office轉(zhuǎn)換成標(biāo)準(zhǔn)XML格式,而word中的內(nèi)容就是一個(gè)個(gè)的xml標(biāo)簽。

          所以我們可以先用office制作word模板,另存為xml之后,將其中的需要?jiǎng)討B(tài)生成的部分改成變量,再通過freemarker生成即可(注意生成的文件后綴名要改為.doc或.docx)。而word中的圖片該怎么處理呢?word中的圖片是以base64存儲(chǔ)的,所以只要將圖片轉(zhuǎn)換為base64,然后放在對(duì)應(yīng)的變量上就可以了。

          這種方式的最大缺點(diǎn)是word轉(zhuǎn)為xml格式后,結(jié)構(gòu)相對(duì)復(fù)雜,模板的制作比較麻煩。但綜合來說,這是最佳的Word導(dǎo)出方案。

          Excel

          Excel通常用來導(dǎo)出數(shù)據(jù)類型的報(bào)表。比如某段時(shí)間內(nèi)的DDoS攻擊流量匯總等。Excel的導(dǎo)出比較常見,網(wǎng)上案例也比較多,大部分都使用JXL或POI這兩個(gè)工具。

          1.JXL

          JXL對(duì)中文支持很好,且操作簡(jiǎn)單。支持圖片和圖表,但是支持有限,而且圖片只支持PNG格式。大數(shù)據(jù)量Excel導(dǎo)出時(shí)的效率較差。

          2.POI

          POI在Excel導(dǎo)出中應(yīng)該是最常用的方案了。它對(duì)Excel的很全面,支持使用公式、宏。對(duì)格式支持很好,可以任意定義單元格的格式。同時(shí)在大數(shù)據(jù)量Excel的生成上,效率很高。

          PDF1.jasper report

          jasper report是比較常用的一種生成PDF的方式。它的設(shè)計(jì)思路是先生成模板,再將數(shù)據(jù)嵌入模板中。它的缺點(diǎn)是模板生成復(fù)雜,規(guī)則眾多,需要借助IDE的可視化工具進(jìn)行編輯,入門和使用都比較困難。

          2.itext

          iText是十分好用的一個(gè)PDF開源軟件。支持使用圖片、HTML頁面和直接用Java代碼等多種方式生成PDF。IText的API很豐富,對(duì)PDF的格式支持很好。iText有一個(gè)顯著的缺點(diǎn),對(duì)HTML的格式要求特別嚴(yán)格,且無法識(shí)別很多html的tag和attribute,無法識(shí)別css,需要使用API函數(shù)來設(shè)置樣式。如果想要使用HTML直接生成PDF,IText的缺點(diǎn)確認(rèn)是讓人抓狂。在HTML上畫樣式要比使用API一行一行繪制PDF樣式簡(jiǎn)單的多。怎么辦呢?如果你有一個(gè)可訪問的頁面地址,你可以試試使用下面的方式。

          3.iText+phantomjs

          PhantomJS 是一個(gè)基于 WebKit 的服務(wù)器端 JavaScript API。PhantomJS可以用于頁面自動(dòng)化,網(wǎng)絡(luò)監(jiān)測(cè),網(wǎng)頁截屏,以及無界面測(cè)試等。我們可以通過它對(duì)要生成PDF的URL截屏,然后將圖片轉(zhuǎn)成PDF。這種方式的缺點(diǎn)是,生成的PDF內(nèi)的文字全部不可選中,沒辦法復(fù)制其中內(nèi)容。

          4.iText+flying sauser

          flying sauser是基于IText的一個(gè)開源軟件。它解決了iText對(duì)HTML支持弱的痛點(diǎn)。而且生成的PDF內(nèi)容全部可以選中復(fù)制。缺點(diǎn)是它仍然對(duì)HTML格式要求嚴(yán)格。

          文件開頭必須是

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

          <html xmlns="http://www.w3.org/1999/xhtml">

          所有的標(biāo)簽必須閉合。特殊字符需要使用<![CDATA[]]>括起來。但和前面幾種方案比起來,這仍然算是比較優(yōu)秀的解決方案了。b( ̄▽ ̄)d

          下是江西教育考試院公布的江西省2020年具備高職單招資格的學(xué)校名單,共計(jì)62所,供大家參考:

          序號(hào) 高校名稱 高校招生簡(jiǎn)章網(wǎng)址

          1江西科技學(xué)院http://zjc.jxut.edu.cn/ygzs.htm

          2南昌理工學(xué)院http://zsb.nut.edu.cn

          3江西服裝學(xué)院http://bm.jift.edu.cn/dz/

          4南昌工學(xué)院http://zsb.ncpu.edu.cn/

          5江西工程學(xué)院http://zsc.jxue.edu.cn

          6江西應(yīng)用科技學(xué)院http://www.jxcsedu.com/zhaosheng/

          7南昌職業(yè)大學(xué)http://zsb.nczyxy.com

          8江西軟件職業(yè)技術(shù)大學(xué)https://www.jxuspt.com/Z07_ZSJY/zhzoshengianjie.jsp

          9江西醫(yī)學(xué)高等專科學(xué)校http://zsjy.jxyxgz.cn/

          10宜春幼兒師范高等專科學(xué)校http://www.gacycu.cn/newsshow.asp?id=1670

          11江西師范高等專科學(xué)校http://www.jxsfgz.com/zsb

          12上饒幼兒師范高等專科學(xué)校http://www.srygz.cn/nd.jsp?id=63

          13撫州幼兒師范高等專科學(xué)校http://www.fzpec.cn/show-61-1398-1.html

          14九江職業(yè)大學(xué)http://zsc.jjvu.jx.cn/index.aspx

          15九江職業(yè)技術(shù)學(xué)院http://ddzs.zbrcw.cn/

          16江西工業(yè)職業(yè)技術(shù)學(xué)院http://zsw.jxgzy.cn

          17江西電力職業(yè)技術(shù)學(xué)院http://www.jxdlzy.com

          18江西旅游商貿(mào)職業(yè)學(xué)院http://zsb.jxlsxy.com

          19江西機(jī)電職業(yè)技術(shù)學(xué)院http://zs.jxjdxy.edu.cn/html/zhaoshengxinxi/index.html

          20江西陶瓷工藝美術(shù)職業(yè)技術(shù)學(xué)院www.jxgymy.com

          21江西環(huán)境工程職業(yè)學(xué)院www.jxhjxy.com

          22江西信息應(yīng)用職業(yè)技術(shù)學(xué)院http://www.jxcia.com

          23江西工業(yè)工程職業(yè)技術(shù)學(xué)院http://www.jxgcxy.net

          24江西交通職業(yè)技術(shù)學(xué)院https://zsb.jxjtxy.edu.cn

          25江西藝術(shù)職業(yè)學(xué)院https://www.jxysedu.com

          26江西財(cái)經(jīng)職業(yè)學(xué)院http://www.jxvc.jx.cn/

          27江西司法警官職業(yè)學(xué)院www.jxsfjy.cn

          28江西應(yīng)用技術(shù)職業(yè)學(xué)院http://www.jxyy.edu.cn/zsw/

          29江西現(xiàn)代職業(yè)技術(shù)學(xué)院http://zsw.jxxdxy.edu.cn/

          30江西外語外貿(mào)職業(yè)學(xué)院http://zs.jxcfs.com/

          31江西工業(yè)貿(mào)易職業(yè)技術(shù)學(xué)院http://zsc.jxgmxy.com/

          32江西應(yīng)用工程職業(yè)學(xué)院http://zsc.jxatei.net/

          33江西建設(shè)職業(yè)技術(shù)學(xué)院http://www.jxjsxy.edu.cn/news-list-zhaojshengfzhuanflany.html

          34宜春職業(yè)技術(shù)學(xué)院http://zs.ycvc.jx.cn

          35撫州職業(yè)技術(shù)學(xué)院http://www.fzjsxy.cn/

          36江西生物科技職業(yè)學(xué)院http://zsw.jxswkj.com/ddzs.htm

          37江西衛(wèi)生職業(yè)學(xué)院http://zsw.jxhlxy.com.cn

          38江西青年職業(yè)學(xué)院http://zs.jxqy.edu.cn/

          39上饒職業(yè)技術(shù)學(xué)院http://zs.srzy.cn/news-list-zhaoshengjianzhang.html

          40江西農(nóng)業(yè)工程職業(yè)學(xué)院http://www.jxaevc.com

          41江西科技職業(yè)學(xué)院http://www.jxkeda.com/

          42江西航空職業(yè)技術(shù)學(xué)院http://www.jhxy.com.cn/?a=web.articles&uid=9059&id=3864

          43贛西科技職業(yè)學(xué)院www.ganxidx.com

          44江西制造職業(yè)技術(shù)學(xué)院http://www.jxmtc.com/

          45江西工程職業(yè)學(xué)院http://www.jxrtvu.com/gczyxy/2020/0216/c185a19015/page.html

          46江西泰豪動(dòng)漫職業(yè)學(xué)院https://www.thdm.edu.cn/

          47江西楓林涉外經(jīng)貿(mào)職業(yè)學(xué)院http://www.fenglin.org

          48江西傳媒職業(yè)學(xué)院http://zsc.jxmvc.cn/

          49江西冶金職業(yè)技術(shù)學(xué)院http://zs.jxyjxy.com/

          50江西新能源科技職業(yè)學(xué)院http://www.tynxy.com/

          51江西工商職業(yè)技術(shù)學(xué)院http://www.jxgsxy.net/Item/list.asp?id=351

          52景德鎮(zhèn)陶瓷職業(yè)技術(shù)學(xué)院http://www.jcivt.com/zsc/index.asp

          53共青科技職業(yè)學(xué)院www.gqkj.com.cn

          54江西水利職業(yè)學(xué)院https://mp.weixin.qq.com/s/FdP8ZOaXkwu3F0ry5mZLgg

          55吉安職業(yè)技術(shù)學(xué)院http://www.japt.com.cn/zsxxw/info/1078/1262.htm

          56江西洪州職業(yè)學(xué)院www.jxhzxy.com

          57南昌影視傳播職業(yè)學(xué)院http://www.ncyscb.com/

          58贛南衛(wèi)生健康職業(yè)學(xué)院http://zsjy.gnhvc.cn/zs.asp

          59萍鄉(xiāng)衛(wèi)生職業(yè)學(xué)院http://www.pxhvc.com/

          60江西婺源茶業(yè)職業(yè)學(xué)院http://jxtvc.com/Item/list.asp?id=1770

          61江西經(jīng)濟(jì)管理干部學(xué)院http://zsb.jiea.cn/

          62贛州職業(yè)技術(shù)學(xué)院http://www.gzpt.edu.cn/


          主站蜘蛛池模板: 国产高清精品一区| 一区二区无码免费视频网站| 天堂资源中文最新版在线一区| 亚洲一区二区观看播放| 色噜噜AV亚洲色一区二区| 久久亚洲国产精品一区二区| 日本中文字幕在线视频一区| 国模大胆一区二区三区| 国产精品自拍一区| 人妻体内射精一区二区三四| 日本一区午夜艳熟免费| 国产一区二区三区在线免费观看| 国产激情一区二区三区小说 | 日韩精品无码一区二区三区免费 | 久久99精品国产一区二区三区 | 亚洲乱码av中文一区二区 | 亚洲福利视频一区二区| 91精品一区二区三区在线观看| 日韩动漫av在线播放一区| 在线视频一区二区| 中文字幕精品一区二区| 久久精品一区二区三区中文字幕 | 亚洲一区在线观看视频| 亚洲日本va一区二区三区| 无码喷水一区二区浪潮AV| 国产精品自拍一区| 亚洲AV福利天堂一区二区三| 爆乳熟妇一区二区三区| 国产成人精品一区二三区| 亚洲中文字幕一区精品自拍| 亚洲蜜芽在线精品一区| 91大神在线精品视频一区| 无码一区二区三区| 久久一本一区二区三区| 亚洲bt加勒比一区二区| 亚洲第一区视频在线观看| 人妻av无码一区二区三区| 精品无码人妻一区二区三区品| 久久se精品一区二区| 中文字幕精品亚洲无线码一区| 亚洲一区二区三区影院|