




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、I.Apache POI 簡(jiǎn)介 Apache POI是Apache軟件基金會(huì)的開(kāi)放源碼函式庫(kù),POI提供API給Java程式 對(duì)Microsoft Office格式檔案讀和寫的功能。.NET的開(kāi)發(fā)人員則可以利用NPOI (POI for .NET) 來(lái)存取POI的功能。 2.POI結(jié)構(gòu) HSSF XSSF HWPF HSLF HDGF HPBF HSMF 提供讀寫 提供讀寫 提供讀寫 提供讀寫 Microsoft Excel XLS格式檔案的功能。 Microsoft Excel OOXML XLSX 格式檔案的功能。 Microsoft Word DOC 格式檔案的功能。 Microsoft
2、 Po werPoi nt格式檔案的功能。 格式檔案的功能。 格式檔案的功能。 提供讀 Microsoft Visio 提供讀 Microsoft Publisher 提供讀Microsoft Outlook格式檔案的功能。 參考實(shí)例 在web開(kāi)發(fā)中,有一個(gè)經(jīng)典的功能,就是數(shù)據(jù)的導(dǎo)入導(dǎo)出。特別是數(shù)據(jù)的導(dǎo)出, 在生產(chǎn)管理或者財(cái)務(wù)系統(tǒng)中用的非常普遍,因?yàn)檫@些系統(tǒng)經(jīng)常要做一些報(bào)表打印 的工作。而數(shù)據(jù)導(dǎo)出的格式一般是 EXCEL或者PDF 首先我們來(lái)導(dǎo)出EXCEl格式的文件吧?,F(xiàn)在主流的操作Excel文件的開(kāi)源工具有 很多,用得比較多的就是 Apache的POI及JExcelAPI。這里我們用Apac
3、he POI ! 我們先去Apache的大本營(yíng)下載POI的jar包:/或者從 我附件下載 Java 代碼 DC 1. 2. 3. 4. 5. 6. 7. 8. 9. p ackage org.le no .ex port.util; import java.util.Date; p ublic class Stude nt p rivate long id; p rivate String n ame; p rivate int age; p rivate boolea n sex; 10. p rivate Date birthday; 11. 11.
4、 public Stude nt() 12. su per(); 13. / TODO Auto-ge nerated con structor stub 14. 16. 17. p ublic Stude nt(l ong id, String n ame, int age, boolea n sex. Date birthday) 18. su per(); 19. this.id = id; 20. this .n ame = n ame; 21. this.age = age; 22. this.sex = sex; 23. this.birthday = birthday; 24.
5、25. 25. p ublic long getId() 26. return id; 27. 29. 28. p ublic void setId(l ong id) 29. this.id = id; 30. 33. 31. public Stri ng getName() 32. return n ame; 33. 37. 34. p ublic void setName(Stri ng n ame) 35. this .n ame = n ame; 36. 41. 37. public in t getAge() 38. retur n age; 39. 45. 40. p ublic
6、 void setAge(i nt age) 41. this.age = age; 42. 49. 43. p ublic boolea n getSex() 44. retur n sex; 45. 53. 46. p ublic void setSex(boolea n sex) 47. this.sex = sex; 48. 57. 49. public Date getBirthday() 50. return birthday; 51. 61. 62. public void setBirthday(Date birthday) 63. this.birthday = birthd
7、ay; 64. 65. 65. Java代碼匚hrC? 1. 2. 3. 4. 5. 6. 7. 8. 9. p ackage org.le no .ex port.util; p ublic class Book p rivate int bookId; p rivate String n ame; p rivate String author; p rivate float p rice; p rivate String isb n; p rivate String p ubName; 10. p rivate byte p reface; 11. 11. public Book() 12
8、. su per(); 13. 15. 14. p ublic Book(i nt bookId, String n ame, String author, float p rice, 17.Stri ng isb n, String p ubName, byte p reface) 18. su per(); 19. this.bookld = bookId; 20. this .n ame = n ame; 21. this.author = author; 22. this .p rice = p rice; 23. this.isb n = isb n; 24. this .p ubN
9、ame = p ubName; 25. this. preface = p reface; 26. 26. 28. 27. public in t getBookId() 28. return bookId; 29. 32. 30. public void setBookld( int bookId) 31. this.bookld = bookId; 32. 36. 33. public Stri ng getName() 34. return n ame; 35. 40. 36. public void setName(Stri ng n ame) 37. this .n ame = n
10、ame; 38. 44. 39. public Stri ng getAuthor() 40. return author; 41. 48. 42. public void setAuthor(Stri ng author) 43. this.author = author; 44. 52. 45. public float get Price() 46. return p rice; 47. 56. 48. p ublic void set Pricefloat p rice) 49. this .p rice = p rice; 50. 60. 51. public Stri ng get
11、Isb n() 52. return isb n; 53. 64. 54. p ublic void setIsb n( Stri ng isb n) 55. this.isb n = isb n; 56. 68. 57. public Stri ng get PubName() 58. return p ubName; 59. 72. 60. public void set PubName(Stri ng pubName) 61. this .p ubName = p ubName; 62. 76. 63. public byte get Preface() 64. return p ref
12、ace; 65. 80. 66. public void set Preface(byte p reface) 67. this .p reface = p reface; 68. 84. 69. 上面這兩個(gè)類一目了然,就是兩個(gè)簡(jiǎn)單的javabean風(fēng)格的類。再看下面真正的 重點(diǎn)類: Java代碼令C 1. 2. 3. 4. 5. 6. 7. 8. 9. P ackage org.le no .ex port.util; import java.io.*; import java.la ng.reflect.*; import java.util.*; import java.util.reg
13、ex.Matcher; import java.util.regex. Pattern; import java.text.Si mpl eDateFormat; import javax.swi ng.JO ptio nPane; import org.a pache .p oi.hssf.usermodel.*; 10.i mport org.a pache .p oi.hssf.util.HSSFColor; 11. 12./* 13. *利用開(kāi)源組件POI3.O.2動(dòng)態(tài)導(dǎo)出EXCEL文檔 轉(zhuǎn)載時(shí)請(qǐng)保留以下信息, 注明出處! 14. * 15. * author leno 16. * v
14、ersio n v1.0 17. * p aram 18. *應(yīng)用泛型,代表任意一個(gè)符合javabean風(fēng)格的類 19. *注意這里為了簡(jiǎn)單起見(jiàn),boolean型的屬性xxx的get器方式為 getXxx(),而不是 isXxx() 20. * byte表jpg格式的圖片數(shù)據(jù) 21. */ 22. p ublic class Exp ortExcelvT 23. 23. public void exportExcel(CollectionvTdataset, OutputStream out) 24. exportExcel(測(cè)試 POI 導(dǎo)出 EXCE文檔,null, dataset, ou
15、t, yyyy-MM-dd); 25. 27. 26. p ublic void exp ortExcel(Stri ng headers, Collect ionvT dataset, 29.Out putStream out) 30. exportExcel(測(cè)試 POI 導(dǎo)出 EXCE文檔, headers, dataset, out, yyyy-MM-dd); 31. 32. 32. p ublic void exp ortExcel(Stri ng headers, Collect ionvT dataset, 34.Out putStream out, Stri ng p atte
16、rn) 35. exportExcel(測(cè)試 POI 導(dǎo)出 EXCE文檔, headers, dataset, out, p attern); 36. 37. 37. /* 38. *這是一個(gè)通用的方法,利用了 JAVA的反射機(jī)制,可以將放置在 JAVA 集合中并且符號(hào)一定條件的數(shù)據(jù)以EXCEL的形式輸出到指定IO設(shè)備上 39. * 40. * p aram title 41. *表格標(biāo)題名 42. * p aram headers 43. *表格屬性列名數(shù)組 44. * p aram dataset 45. *需要顯示的數(shù)據(jù)集合,集合中一定要放置符合javabean風(fēng)格的類的 對(duì)象。此方法支
17、持的 46. * javabean屬性的數(shù)據(jù)類型有基本數(shù)據(jù)類型及String,Date,byte(圖 片數(shù)據(jù)) 47. * p aram out 48. *與輸出設(shè)備關(guān)聯(lián)的流對(duì)象,可以將EXCEL文檔導(dǎo)出到本地文件或者網(wǎng) 絡(luò)中 49. * p aram p atter n 50. *如果有時(shí)間數(shù)據(jù),設(shè)定輸出格式。默認(rèn)為yyy-MM-dd 51. */ 52. S upp ressWar nin gs( un checked) 53. p ublic void exp ortExcel(Stri ng title, Strin g headers, 54. Collect ionvT datas
18、et, Out putStream out, Stri ng p atter n) 55. / 聲明一個(gè)工作薄 56. HSSFWorkbook workbook = new HSSFWorkbook(); 57. / 生成一個(gè)表格 58. HSSFSheet sheet = workbook.createSheet(title); 59. /設(shè)置表格默認(rèn)列寬度為15個(gè)字節(jié) 60. sheet.setDefaultColum nWidth(15); 61. / 生成一個(gè)樣式 62. HSSFCellStyle style = workbook.createCellStyle(); 63. /設(shè)
19、置這些樣式 64. style.setFillForegro un dColor(HSSFColor.SKY_BLUE.i ndex); 65. style.setFill Pattem(HSSFCellStyle.SOLID_FOREGROUND); 66. style.setBorderBottom(HSSFCellStyle.BORDER_THIN); 67. style.setBorderLeft(HSSFCellStyle.BORDER_THIN); 68. style.setBorderRight(HSSFCellStyle.BORDER_THIN); 69. style.setB
20、orderTo p(HSSFCellStyle.BORDER_THIN); 70. style.setAlig nmen t(HSSFCellStyle.ALIGN_CENTER); 71. / 生成一個(gè)字體 72. HSSF Font fon t = workbook.createFo nt(); 73. fo nt.setColor(HSSFColor.VIOLET.i ndex); 74. fo nt.setFo ntHeightI nP oi nts(short) 12); 75. fo nt.setBoldweight(HSSFFo nt.BOLDWEIGHT_BOLD); 76.
21、/把字體應(yīng)用到當(dāng)前的樣式 77. style.setFo nt(fo nt); 78. /生成并設(shè)置另一個(gè)樣式 79. HSSFCellStyle style2 = workbook.createCellStyle(); 80. style2.setFillForegro un dColor(HSSFColor.LIGHT_YELLOW.i ndex); 81. style2.setFill Pattem(HSSFCellStyle.SOLID_FOREGROUND); 82. style2.setBorderBottom(HSSFCellStyle.BORDER_THIN); 83. sty
22、le2.setBorderLeft(HSSFCellStyle.BORDER_THIN); 84. style2.setBorderRight(HSSFCellStyle.BORDER_THIN); 85. style2.setBorderTo p(HSSFCellStyle.BORDER_THIN); 86. style2.setAlig nmen t(HSSFCellStyle.ALIGN_CENTER); 87. style2.setVerticalAlig nmen t(HSSFCellStyle.VERTICAL_CENTER); 88. / 生成另一個(gè)字體 89. HSSFFo n
23、t font2 = workbook.createFo nt(); 90. fo nt2.setBoldweight(HSSFFo nt.BOLDWEIGHT_NORMAL); 91. /把字體應(yīng)用到當(dāng)前的樣式 92. style2.setFo nt(fo nt2); 94. 93. /聲明一個(gè)畫圖的頂級(jí)管理器 94. HSS FP atriarch p atriarch = sheet.createDrawi ngP atriarch(); 95. /定義注釋的大小和位置,詳見(jiàn)文檔 96. HSSFComme nt comme nt = p atriarch.createComme nt(n
24、ew HSSFClie ntAn chor(0, 99.0, 0, 0, (short) 4, 2, (short) 6, 5); 100. /設(shè)置注釋內(nèi)容 101. comment.setString(new HSSFRichTextString(可以在 POI 中添加 注釋!); 102./設(shè)置注釋作者,當(dāng)鼠標(biāo)移動(dòng)到單元格上是可以在狀態(tài)欄中看到該 內(nèi)容. comme nt.setAuthor(le no); 103. 104. 105. 106. 107. 108. 109. 110. /產(chǎn)生表格標(biāo)題行 HSSFRow row = sheet.createRow(O); for (int
25、i = 0; i headers.le ngth; i+) HSSFCell cell = row.createCell(i); cell.setCellStyle(style); HSSFRichTextStri ng text = new HSSFRichTextStri ng(headersi); cell.setCellValue(text); 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. /遍歷集合數(shù)據(jù),產(chǎn)生數(shù)據(jù)行 Iterator it = dataset.iterator(); int in dex = 0; whi
26、le (it.hasNextO) in dex+; row = sheet.createRow(i ndex); T t = (T) it. next(); /利用反射,根據(jù)javabean屬性的先后順序,動(dòng)態(tài)調(diào)用getXxx() 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 方法得到屬性值 Field fields = t.getClass().getDeclaredFields(); for (i nt i = 0; i ex
27、= new Exp ortExcelvStude nt(); 231. String headers = 學(xué)號(hào),姓名,年齡,性別,出生 日期; 232. ListvStude nt dataset = new ArrayListvStude nt(); 233. dataset.add( new Stude nt(10000001, Date(); 234. dataset.add( new Stude nt(20000002, Date(); 235. dataset.add( new Stude nt(30000003, Date(); 236. /測(cè)試圖書 237. Exp ortExc
28、elvBook ex2 = new Exp ortExcelvBook(); 238. String headers2 = 圖書編號(hào),圖書名稱,圖書作者, 圖書價(jià)格,圖書ISBN, 圖書出版社,封面圖片; ListvBook dataset2 = new ArrayListvBook(); try Bufferedl np utStream bis = new Bufferedl np utStream( new Filel np utStream(book.j pg); byte buf = new bytebis.available(); while (bis.read(buf) != -
29、1) / dataset2.add( new Book(1, js p, le no, 300.33f, 1234567, 清華出版社, buf); dataset2.add( new Book(2, java 張三,20, true, new 李四,24, false, new 王五,22, true, new 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 編程思想,bruci, 300.33f, 1234567, 251. 陽(yáng)光出版社, buf); 252. dataset2.add( new Book(3, DOM
30、 1234567, 253. 清華出版社, buf); 254. dataset2.add( new Book(4, c+ 1234567, 255. 清華出版社, buf); 256. dataset2.add( new Book(5, c# 1234567, 湯春秀出版社, buf); 藝術(shù),le nota ng, 300.33f, 經(jīng)典, le no, 400.33f, 入門,le no, 300.33f, 257. 258. 259. 260. 261. 262. 263. 264. Out putStream out = new FileOut putStream(D:/a.xls)
31、; Out pu tStream out2 = new FileOut pu tStream(D:/b.xls); ex.ex portExcel(headers, dataset, out); ex2.ex portExcel(headers2, dataset2, out2); out.close(); JOptionPane.showMessageDialog(null,導(dǎo)出成功!); 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. System.out .printin (excel 導(dǎo)出成功!); catch (FileN
32、otF oun dExce pti on e) / TODO Auto-ge nerated catch block e.prin tStackTrace(); catch (lOExce pti on e) / TODO Auto-ge nerated catch block e.prin tStackTrace(); 不行,頭有點(diǎn)暈。呵呵,又是泛型,又是反射,又是正則表達(dá)式,又是重載: 還有多參數(shù)列表和POI API。一下子蹦出來(lái),實(shí)在讓人吃不消。不管了,頂住看 效果先。在本地運(yùn)行后,我們發(fā)現(xiàn)在 E:/下生成了兩份excel文件:學(xué)生記錄 和圖書記錄,并且中文,數(shù)字,顏色,日期,圖片等等一
33、且正常。恩,太棒了。 有人看到這里開(kāi)始苦臉了:喂,我怎么一運(yùn)行就報(bào)錯(cuò)?。『呛?,看看什么錯(cuò)吧! 哦,找不到文件,也就是說(shuō)你沒(méi)有 book.jpg嘛。好,拷貝一張小巧的圖書圖片 命名為book.jpg放置到當(dāng)前工程下吧。注意,您千萬(wàn)別把張桌面大小的圖片丟 進(jìn)去了 !看到效果了吧?,F(xiàn)在我們?cè)賮?lái)簡(jiǎn)單梳理一下代碼,實(shí)際上上面就做 了一個(gè)導(dǎo)出excel的方法和一個(gè)本地測(cè)試main()方法。并且代碼的結(jié)構(gòu)也很清 晰,只是涉及的知識(shí)點(diǎn)稍微多一點(diǎn)。大家細(xì)心看看注釋,結(jié)合要完成的功能,應(yīng) 該沒(méi)有太大問(wèn)題的。好啦,吃杯茶,擦把汗,總算把這個(gè)類消化掉,你又進(jìn)步了。 咦,你不是說(shuō)是在 WE酥境下導(dǎo)出的嗎?別急,因?yàn)閷?dǎo)出
34、就是一個(gè)下載的過(guò)程。 我們只需要在服務(wù)器端寫一個(gè)Jsp或者Servlet組件完成輸出excel到瀏覽器客 戶端的工作就好了。我們以Servlet為例,還是看代碼吧: P ackage org.le no .ex port.util; 1. 2. import java.io.*; import java.util.ArrayList; import java.util.List; 3. 4. 5. import javax.servlet.ServletExce pti on; import javax.servlet.htt p.Htt pServletRequest; import jav
35、ax.servlet.htt p. Htt pServletRes ponse; 6. 7. 8. 9. 10. 11./* 12.* author leno 使用servlet 導(dǎo)出動(dòng)態(tài)生成的excel文件,數(shù)據(jù)可以來(lái) 源于數(shù)據(jù)庫(kù) 13. *這樣,瀏覽器客戶端就可以訪問(wèn)該 servlet得到一份用java代碼動(dòng)態(tài) 生成的excel文件 14. */ 15. p ublic class Export exte nds javax.servlet.htt p. Htt pServlet 16. static fin al lo ng serialVersio nUID = 1L; 17. 17.
36、 protected void doGet(Htt pServletRequest request, 18. Htt pServletRes ponse res pon se) throws ServletExce pti on, IOExce ptio n 19. File file = new File(getServletCo ntext() 21.getReal Path(WEB-INF/book.j pg); 22. res pon se.setCo ntentTyp e(octets/stream); 23. res pon se.addHeader(C onten t-Dis p
37、o siti on, 24. attachme nt;file name=test.xls); 25. /測(cè)試圖書 26. Ex portExcelvBook ex = new Exp ortExcelvBook(); 27.String headers = 圖書編號(hào),圖書名稱,圖書作者,圖書價(jià) 格,圖書ISBN,圖書出版社, 28. 封面圖片; 29. List dataset = new ArrayList(); 30. try 31. BufferedI np utStream bis = new BufferedI np utStream( 32. new File Inp utStr
38、eam(file); 33. byte buf = new bytebis.available(); 34. while (bis.read(buf) != -1) 35. /將圖片數(shù)據(jù)存放到緩沖數(shù)組中 36. 37. dataset.add( new Book(1, js p, le no, 300.33f, 1234567, 出版社, 38. buf); 39. dataset.add( new Book(2, java 1234567, 40. 陽(yáng)光出版社, buf); 41. dataset.add( new Book(3, DOM 1234567, 42. 清華出版社, buf);
39、43. dataset.add( new Book(4, c+ 44. 清華出版社, buf); 45. dataset.add( new Book(5, c# 46. 湯春秀出版社, buf); 編程思想, brucl, 300.33f, 藝術(shù),le no ta ng, 300.33f, 經(jīng)典, le no, 400.33f, 1234567, 入門,le no, 300.33f, 1234567, 47.Out putStream out = respon se.getOut putStream(); 48.ex.ex portExcel(headers, dataset, out); 4
40、9.out.close(); 50.System.out. prin tl n(excel 導(dǎo)出成功?。?; 清華 51. catch (FileNotFou ndExce ption e) 52. / TODO Auto-ge nerated catch block 53. e .prin tStackTrace(); 54. catch (IOExce ption e) 55. / TODO Auto-ge nerated catch block 56. e. prin tStackTrace(); 57. 58. 59. 59. protected void doPo st(Htt pSe
41、rvletRequest request, 60. Htt pServletRes ponse res pon se) throws ServletExce pti on, IOExce ptio n 61. doGet(request, res pon se); 62. 63. 寫完之后,如果您不是用 eclipse工具生成的Servlet,千萬(wàn)別忘了在web.xml 上注冊(cè)這個(gè)Servelt。我用的是Ecl ip se工具生成的servlet,自動(dòng)注冊(cè)了 servlet,注冊(cè)內(nèi)容如下: Ex portv/servlet -n ame org.le no .ex port.util.Ex portv/servlet-class Ex portv/servlet -n ame /servlet/Ex portv/u
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZTSS 0002-2024 同山燒酒評(píng)價(jià)規(guī)范
- T-ZJSEIA 007-2024 產(chǎn)品碳足跡評(píng)價(jià)技術(shù)規(guī)范光伏組件
- 二零二五年度健康產(chǎn)業(yè)商家入駐戰(zhàn)略合作協(xié)議
- 2025年度離婚財(cái)產(chǎn)分割與子女財(cái)產(chǎn)繼承協(xié)議
- 二零二五年度個(gè)人之間房產(chǎn)交易保密協(xié)議
- 二零二五年度按揭房屋借款協(xié)議書(公積金貸款)
- 2025年度籃球運(yùn)動(dòng)員轉(zhuǎn)會(huì)合同解除條件
- 二零二五年度超市租賃合同書:超市租賃及綠色環(huán)保產(chǎn)品合作協(xié)議
- 二零二五年度智能交通投資暗股協(xié)議
- 2025年度職業(yè)電競(jìng)選手私教訓(xùn)練協(xié)議
- COP生產(chǎn)一致性控制計(jì)劃
- 天津2025年天津市機(jī)關(guān)后勤事務(wù)服務(wù)中心分支機(jī)構(gòu)天津市迎賓館招聘2人筆試歷年參考題庫(kù)附帶答案詳解
- 2025年江蘇南京技師學(xué)院招聘工作人員19人高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 華東師大版七年級(jí)數(shù)學(xué)下冊(cè)“第1周周考”
- DBJ50-T-385-2023半柔性復(fù)合路面技術(shù)標(biāo)準(zhǔn)
- 職業(yè)院校教師人工智能素養(yǎng):內(nèi)涵流變、框架構(gòu)建與生成路徑
- 如何在初中數(shù)學(xué)教學(xué)中提升學(xué)生的核心素養(yǎng)
- (完整版)小學(xué)一年級(jí)數(shù)學(xué)20以內(nèi)進(jìn)退位加減法(1600道題)計(jì)算卡
- 2025年包頭鐵道職業(yè)技術(shù)學(xué)院高職單招語(yǔ)文2018-2024歷年參考題庫(kù)頻考點(diǎn)含答案解析
- 事故隱患內(nèi)部舉報(bào)獎(jiǎng)勵(lì)制度
- 2024年山東新華書店集團(tuán)限公司臨沂市縣分公司招聘錄取人員(高頻重點(diǎn)提升專題訓(xùn)練)共500題附帶答案詳解
評(píng)論
0/150
提交評(píng)論