1. 程式人生 > >利用POI將資料庫表匯出到Excel

利用POI將資料庫表匯出到Excel

在一個石化的專案中遇到了一個要求,需要將資料庫的一個表的資料導到Excel中,我也是剛出來工作不久,對這些開源的東西還不是很熟悉。後來認真看了一下,借這個機會把自己的一點理解寫出來,一來用於鞏固自己的學習,二來給別人一些參考吧!

Apache POI是Apache軟體基金會的開放原始碼函式庫,POI提供API給Java程式對Microsoft Office格式檔案讀和寫的功能。它的主要結構包括:HSSF,XSSF等等。我們一般都是用於匯出Excel,其他的相對少一點。

從資料庫中匯出到Excel的原始碼及步驟如下:
1、首先要有一張表和資料
資料庫表

2、程式碼,利用JDBC連線資料庫

import java.io
.FileOutputStream; import java.sql.DriverManager; import java.sql.ResultSet; import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import com.mysql.jdbc.Connection
; import com.mysql.jdbc.Statement; public class ReadExcelFromDB { public final static String outputFile="C:\\Users\\XueFei\\Desktop\\country.xlsx"; public final static String url="jdbc:mysql://192.168.3.235:3306/sop"; public final static String user="你的使用者名稱"; public final static String password="你的密碼"
; public static void main(String[] args) { try { Class.forName("com.mysql.jdbc.Driver"); Connection conn=(Connection) DriverManager.getConnection(url, user, password); Statement stat = (Statement) conn.createStatement(); ResultSet resultSet = stat.executeQuery("select * from t_bi_country;"); XSSFWorkbook workbook=new XSSFWorkbook(); XSSFSheet sheet=workbook.createSheet("countryDB"); XSSFRow row = sheet.createRow((short)0); XSSFCell cell=null; cell=row.createCell((short)0); cell.setCellValue("code"); cell=row.createCell((short)1); cell.setCellValue("shortname"); cell=row.createCell((short)2); cell.setCellValue("name"); cell=row.createCell((short)3); cell.setCellValue("englishname"); int i=1; while(resultSet.next()) { row=sheet.createRow(i); cell=row.createCell(0); cell.setCellValue(resultSet.getString("code")); cell=row.createCell(1); cell.setCellValue(resultSet.getString("shortName")); cell=row.createCell(2); cell.setCellValue(resultSet.getString("name")); cell=row.createCell(3); cell.setCellValue(resultSet.getString("englishName")); i++; } FileOutputStream FOut = new FileOutputStream(outputFile); workbook.write(FOut); FOut.flush(); FOut.close(); } catch (Exception e) { e.printStackTrace(); } } }

3、執行之後就得到了我們想要的Excel表了。
結果

希望對剛學的人有點幫助吧。