ตัวอย่างนี้แบ่งปันวิธีส่งออกตารางฐานข้อมูลทั้งหมดไปยัง Excel สำหรับการอ้างอิงของคุณ เนื้อหาเฉพาะมีดังนี้
ขั้นตอนที่ 1: วิธีการใช้งาน Excel กับ Poi
@Test โมฆะสาธารณะ createxls () โยนข้อยกเว้น {// ประกาศสมุดงาน hssfworkbook wb = hssfworkbook ใหม่ (); // ประกาศตาราง hssfsheet แผ่น = wb.createsheet ("ตารางแรก"); // ประกาศแถว hssfrow row = sheet.createrow (7); // ประกาศคอลัมน์ hssfcell cel = row.createCell (3); // เขียนข้อมูล cel.setCellValue ("คุณเป็นคนดี"); fileOutputStream fileout = ใหม่ fileOutputStream ("d: /a/b.xls"); wb.write (fileout); fileout.close (); -ขั้นตอนที่ 2: ส่งออกตารางทั้งหมดของฐานข้อมูลที่ระบุ
วิเคราะห์:
1: ฐานข้อมูลตัวเลขที่แน่นอนมีกี่ตารางและชื่อตารางคืออะไร? DatabaseMetadate.getMetadate (). getTables (null, null, null, สตริงใหม่ [] {ตาราง}); - ชื่อไฟล์ของ Excel
2: ดำเนินการเลือก * การดำเนินการในแต่ละตาราง - ชื่อของแต่ละแผ่น
3: วิเคราะห์โครงสร้างตาราง, rs.getMetadate (); ผลลัพธ์ที่ได้รับการฝึกฝน
4: หลายคอลัมน์ชื่อคอลัมน์คืออะไร? - ชื่อฟิลด์เป็นข้อมูลแถวแรกของแผ่นงาน
5: รับข้อมูลของแต่ละแถวและวางไว้ในแถวแรกของแผ่นงาน
@Test โมฆะสาธารณะส่งออก () โยนข้อยกเว้น {// ประกาศฐานข้อมูลที่ต้องส่งออกสตริง dbname = "โฟกัส"; // ประกาศหนังสือ HSSFWORKBOOK หนังสือ = ใหม่ HSSFWORKBOOK (); // รับการเชื่อมต่อรับการเชื่อมต่อข้อมูลเมตา db con = dataSourceutils.getConn (); // ประกาศคำสั่ง st = con.createstatement (); //st.execute("use "+dbname); DatabaseMetadata dmd = con.getMetadata (); // รับจำนวนตารางที่ฐานข้อมูลมี ResultSet rs = dmd.getTables (dbname, dbname, null, สตริงใหม่ [] {"table"}); // รับชื่อตารางทั้งหมด - เป็นรายการแผ่น <string> tables = new ArrayList <String> (); ในขณะที่ (rs.next ()) {string tablename = rs.getString ("table_name"); tables.add (tablename); } สำหรับ (String tablename: Tables) {hssfsheet sheet = book.createsheet (tablename); // ประกาศ SQL String SQL = "SELECT * จาก"+DBNAME+"."+TABLENAME; // Query Data RS = St.ExecuteQuery (SQL); // วิเคราะห์ข้อมูลเมตาของชุดผลลัพธ์ขึ้นอยู่กับการสืบค้น ResultSetMetAdata RSMD = Rs.getMetadata (); // รับจำนวนแถวในการสืบค้นนี้ int cols = rsmd.getColumnCount (); // รับชื่อคอลัมน์ทั้งหมด // สร้างแถวแรก hssfrow row = sheet.createrow (0); สำหรับ (int i = 0; i <cols; i ++) {string colname = rsmd.getColumnName (i+1); // สร้างคอลัมน์ใหม่ hssfcell เซลล์ = row.createCell (i); // เขียนชื่อคอลัมน์ Cell.SetCellValue (colname); } // ถ่ายโอนดัชนีข้อมูล int = 1; ในขณะที่ (rs.next ()) {row = sheet.createrow (ดัชนี ++); // ประกาศคอลัมน์สำหรับ (int i = 0; i <cols; i ++) {string val = rs.getString (i+1); // ประกาศคอลัมน์ hssfcell cel = row.createCell (i); // โพสต์ข้อมูล cel.setCellValue (val); }}} con.close (); book.write (ใหม่ fileOutputStream ("d:/a/"+dbname+". xls")); -ข้างต้นเป็นเรื่องเกี่ยวกับบทความนี้ฉันหวังว่ามันจะเป็นประโยชน์กับการเรียนรู้ของทุกคน