利用POI將資料庫表匯出到Excel
阿新 • • 發佈:2019-02-14
在一個石化的專案中遇到了一個要求,需要將資料庫的一個表的資料導到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表了。
希望對剛學的人有點幫助吧。