摘要:今天做了一個關于生成表的功能有兩種方式第一個不算太了解,第二個是出自的標準,雖然我兩個都使用了,但比較偏向第二個就功能性而言,第一個比較靈活,但結構略簡單,無法從數據庫中大規模的生成或者是我不知道第二個比較全面,但太過龐大第一個代碼打開
今天做了一個關于Java生成Excel表的功能
有兩種方式:1、jxl.jar 2、poi-3.7-20101029.jar
第一個不算太了解,第二個是出自apache的標準,雖然我兩個都使用了,但比較偏向第二個;
就功能性而言,第一個比較靈活,但結構略簡單,無法從數據庫中大規模的生成(或者是我不知道);第二個比較全面,但太過龐大
第一個代碼:
// 打開文件 WritableWorkbook book = Workbook.createWorkbook(new File("test.xls")); // 生成名為“第一頁”的工作表,參數0表示這是第一頁 WritableSheet sheet = book.createSheet("第一頁" , 0 ); // 在Label對象的構造子中指名單元格位置是第一列第一行(0,0) // 以及單元格內容為test Label label = new Label( 0 , 0 , "test" ); // 將定義好的單元格添加到工作表中 sheet.addCell(label); /**/ /* * 生成一個保存數字的單元格 必須使用Number的完整包路徑,否則有語法歧義 單元格位置是第二列,第一行,值為789.123 */ jxl.write.Number number = new jxl.write.Number( 1 , 0 , 555.12541 ); sheet.addCell(number); // 寫入數據并關閉文件 book.write(); book.close();
第二個代碼:
Connection conn = null; Class.forName("com.mysql.jdbc.Driver"); conn = (Connection)DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","1234"); // 11:創建一個excel HSSFWorkbook book = new HSSFWorkbook(); // 1:分析數據 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("-------正在導----" + idx + "/" + table_len); // 12:創建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:創建表頭 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(" "); // 顯示數據 while (rs.next()) { // 14:保存數據 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"));
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/64080.html
時間:2017年07月06日星期四說明:本文部分內容均來自慕課網。@慕課網:http://www.imooc.com教學源碼:無學習源碼:https://github.com/zccodere/s... 第一章:課程介紹 1-1 預備知識 基礎知識 struts2框架(上傳下載功能) xml解析技術(導入模板) JQuery EasyUI(前臺美觀) 課程目錄 實現方式 定制導入模版 導入文件 導...
摘要:這是年的第篇文章,也是汪子熙公眾號總共第篇原創文章。使用通過格式發送和文件到服務器關于格式的詳細說明,參考開發社區和的文檔我在前文例子的基礎上稍作修改在里使用兩個類型為的標簽,分別上傳和文件用來測試的本地文件,大小為字節。 這是 Jerry 2021 年的第 71 篇文章,也是汪子熙公眾號總共第 348 篇原創文章。 Jerry 之前發布過一篇文章 不使用任何框架,手寫純 Jav...
摘要:是阿里巴巴對封裝的一個庫,號稱解決了的問題,并且在使用上也更方便一些然而我在使用的時候發現還是有很多坑,其中一個比較頭疼的是對單個單元格樣式的設置。 EasyExcel是阿里巴巴對POI封裝的一個庫,號稱解決了POI的OOM問題,并且在使用上也更方便一些Github:[](https://github.com/alibaba/ea... 然而我在使用的時候發現還是有很多坑,其中一個比...
摘要:消費之后,多線程處理文件導出,生成文件后上傳到等文件服務器。前端直接查詢并且展現對應的任務執行列表,去等文件服務器下載文件即可。這客戶體驗不友好,而且網絡傳輸,系統占用多種問題。拓展閱讀導出最佳實踐框架 產品需求 產品經理需要導出一個頁面的所有的信息到 EXCEL 文件。 需求分析 對于 excel 導出,是一個很常見的需求。 最常見的解決方案就是使用 poi 直接同步導出一個 exc...
摘要:這里我用的創建的項目,創建過程就不做累述了,直接操刀,開始把數據庫的數據導成一個文件正式開始寫這個創建一個類,這個類就是對進行操作,主要兩個方法。 用SpringMVC生成一個Excel文件 通過Java來生成Excel文件或者導入一個Excel文件的數據都需要用到Apache的一個POI包,這里我就先把這個包提供出來。 org.apache.poi poi-ooxm...
閱讀 2368·2021-11-18 10:07
閱讀 2318·2021-09-22 15:59
閱讀 3077·2021-08-23 09:42
閱讀 2276·2019-08-30 15:44
閱讀 1191·2019-08-29 15:06
閱讀 2303·2019-08-29 13:27
閱讀 1210·2019-08-29 13:21
閱讀 1412·2019-08-29 13:13