摘要:今天做了一個(gè)關(guān)于生成表的功能有兩種方式第一個(gè)不算太了解,第二個(gè)是出自的標(biāo)準(zhǔn),雖然我兩個(gè)都使用了,但比較偏向第二個(gè)就功能性而言,第一個(gè)比較靈活,但結(jié)構(gòu)略簡(jiǎn)單,無(wú)法從數(shù)據(jù)庫(kù)中大規(guī)模的生成或者是我不知道第二個(gè)比較全面,但太過(guò)龐大第一個(gè)代碼打開(kāi)
今天做了一個(gè)關(guān)于Java生成Excel表的功能
有兩種方式:1、jxl.jar 2、poi-3.7-20101029.jar
第一個(gè)不算太了解,第二個(gè)是出自apache的標(biāo)準(zhǔn),雖然我兩個(gè)都使用了,但比較偏向第二個(gè);
就功能性而言,第一個(gè)比較靈活,但結(jié)構(gòu)略簡(jiǎn)單,無(wú)法從數(shù)據(jù)庫(kù)中大規(guī)模的生成(或者是我不知道);第二個(gè)比較全面,但太過(guò)龐大
第一個(gè)代碼:
// 打開(kāi)文件 WritableWorkbook book = Workbook.createWorkbook(new File("test.xls")); // 生成名為“第一頁(yè)”的工作表,參數(shù)0表示這是第一頁(yè) WritableSheet sheet = book.createSheet("第一頁(yè)" , 0 ); // 在Label對(duì)象的構(gòu)造子中指名單元格位置是第一列第一行(0,0) // 以及單元格內(nèi)容為test Label label = new Label( 0 , 0 , "test" ); // 將定義好的單元格添加到工作表中 sheet.addCell(label); /**/ /* * 生成一個(gè)保存數(shù)字的單元格 必須使用Number的完整包路徑,否則有語(yǔ)法歧義 單元格位置是第二列,第一行,值為789.123 */ jxl.write.Number number = new jxl.write.Number( 1 , 0 , 555.12541 ); sheet.addCell(number); // 寫(xiě)入數(shù)據(jù)并關(guān)閉文件 book.write(); book.close();
第二個(gè)代碼:
Connection conn = null; Class.forName("com.mysql.jdbc.Driver"); conn = (Connection)DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","1234"); // 11:創(chuàng)建一個(gè)excel HSSFWorkbook book = new HSSFWorkbook(); // 1:分析數(shù)據(jù) java.sql.DatabaseMetaData dmd = conn.getMetaData(); // 2:獲取所有表名 java.sql.ResultSet rs = dmd.getTables("", "TEST", "STUDENTS", new String[] {"TABLE"}); Listtables = new ArrayList (); while (rs.next()) { String tn = rs.getString("TABLE_NAME"); tables.add(tn); } int table_len = tables.size(); // 3:聲明st Statement st = conn.createStatement(); int idx = 0; for (String tn : tables) { System.err.println("表:" + tn); idx++; System.err.println("-------正在導(dǎo)----" + idx + "/" + table_len); // 12:創(chuàng)建sheet HSSFSheet sheet = book.createSheet(tn); String sql = "select * from " + tn; rs = st.executeQuery(sql); // 3:rsmd ResultSetMetaData rsmd = (ResultSetMetaData)rs.getMetaData(); // 4:分析一共多少列 int cols = rsmd.getColumnCount(); // 13:創(chuàng)建表頭 HSSFRow row = sheet.createRow(0); for (int i = 0; i < cols; i++) { String cname = rsmd.getColumnName(i + 1); HSSFCell cell = row.createCell(i); cell.setCellValue(cname); // System.err.print(" "+cname); } // System.err.println(" "); // 顯示數(shù)據(jù) while (rs.next()) { // 14:保存數(shù)據(jù) row = sheet.createRow(sheet.getLastRowNum() + 1); for (int i = 0; i < cols; i++) { HSSFCell cell = row.createCell(i); cell.setCellValue(rs.getString(i + 1)); // System.err.print(" "+rs.getString(i+1)); } // System.err.println(" "); } // System.err.println(" -------------------"); } book.write(new FileOutputStream("d:/aa.xls"));
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/64080.html
時(shí)間:2017年07月06日星期四說(shuō)明:本文部分內(nèi)容均來(lái)自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)源碼:無(wú)學(xué)習(xí)源碼:https://github.com/zccodere/s... 第一章:課程介紹 1-1 預(yù)備知識(shí) 基礎(chǔ)知識(shí) struts2框架(上傳下載功能) xml解析技術(shù)(導(dǎo)入模板) JQuery EasyUI(前臺(tái)美觀) 課程目錄 實(shí)現(xiàn)方式 定制導(dǎo)入模版 導(dǎo)入文件 導(dǎo)...
摘要:這是年的第篇文章,也是汪子熙公眾號(hào)總共第篇原創(chuàng)文章。使用通過(guò)格式發(fā)送和文件到服務(wù)器關(guān)于格式的詳細(xì)說(shuō)明,參考開(kāi)發(fā)社區(qū)和的文檔我在前文例子的基礎(chǔ)上稍作修改在里使用兩個(gè)類(lèi)型為的標(biāo)簽,分別上傳和文件用來(lái)測(cè)試的本地文件,大小為字節(jié)。 這是 Jerry 2021 年的第 71 篇文章,也是汪子熙公眾號(hào)總共第 348 篇原創(chuàng)文章。 Jerry 之前發(fā)布過(guò)一篇文章 不使用任何框架,手寫(xiě)純 Jav...
摘要:是阿里巴巴對(duì)封裝的一個(gè)庫(kù),號(hào)稱(chēng)解決了的問(wèn)題,并且在使用上也更方便一些然而我在使用的時(shí)候發(fā)現(xiàn)還是有很多坑,其中一個(gè)比較頭疼的是對(duì)單個(gè)單元格樣式的設(shè)置。 EasyExcel是阿里巴巴對(duì)POI封裝的一個(gè)庫(kù),號(hào)稱(chēng)解決了POI的OOM問(wèn)題,并且在使用上也更方便一些Github:[](https://github.com/alibaba/ea... 然而我在使用的時(shí)候發(fā)現(xiàn)還是有很多坑,其中一個(gè)比...
摘要:消費(fèi)之后,多線程處理文件導(dǎo)出,生成文件后上傳到等文件服務(wù)器。前端直接查詢(xún)并且展現(xiàn)對(duì)應(yīng)的任務(wù)執(zhí)行列表,去等文件服務(wù)器下載文件即可。這客戶體驗(yàn)不友好,而且網(wǎng)絡(luò)傳輸,系統(tǒng)占用多種問(wèn)題。拓展閱讀導(dǎo)出最佳實(shí)踐框架 產(chǎn)品需求 產(chǎn)品經(jīng)理需要導(dǎo)出一個(gè)頁(yè)面的所有的信息到 EXCEL 文件。 需求分析 對(duì)于 excel 導(dǎo)出,是一個(gè)很常見(jiàn)的需求。 最常見(jiàn)的解決方案就是使用 poi 直接同步導(dǎo)出一個(gè) exc...
摘要:這里我用的創(chuàng)建的項(xiàng)目,創(chuàng)建過(guò)程就不做累述了,直接操刀,開(kāi)始把數(shù)據(jù)庫(kù)的數(shù)據(jù)導(dǎo)成一個(gè)文件正式開(kāi)始寫(xiě)這個(gè)創(chuàng)建一個(gè)類(lèi),這個(gè)類(lèi)就是對(duì)進(jìn)行操作,主要兩個(gè)方法。 用SpringMVC生成一個(gè)Excel文件 通過(guò)Java來(lái)生成Excel文件或者導(dǎo)入一個(gè)Excel文件的數(shù)據(jù)都需要用到Apache的一個(gè)POI包,這里我就先把這個(gè)包提供出來(lái)。 org.apache.poi poi-ooxm...
閱讀 2373·2021-11-18 10:07
閱讀 2330·2021-09-22 15:59
閱讀 3088·2021-08-23 09:42
閱讀 2287·2019-08-30 15:44
閱讀 1201·2019-08-29 15:06
閱讀 2324·2019-08-29 13:27
閱讀 1224·2019-08-29 13:21
閱讀 1423·2019-08-29 13:13