文章目录
- 1、建立数据库表的实体类
- 2、通过JDBC查询数据库表中的数据
- 3、导入Excel表操作依赖包
- 4、将实体列表转化为HSSFWorkbook工作簿对象
- 5、将HSSFWorkbook以流写入文件
- 完整代码
- 输出文件结果
1、建立数据库表的实体类
public class Food implements Serializable {
//食品id
private int id;
//菜名
private String name;
//菜品
private String type;
//价格
private String pay;
//所属食堂
private String canteen;
public Food() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getPay() {
return pay;
}
public void setPay(String pay) {
this.pay = pay;
}
public String getCanteen() {
return canteen;
}
public void setCanteen(String canteen) {
this.canteen = canteen;
}
@Override
public String toString() {
return "Food{" +
"id=" + id +
", name='" + name + '\'' +
", type='" + type + '\'' +
", pay='" + pay + '\'' +
", canteen='" + canteen + '\'' +
'}';
}
}
2、通过JDBC查询数据库表中的数据
public static void main(String[] args) throws Exception {
List<Food> foods = findAll();
for(Food food:foods){
System.out.println(food);
}
}
public static List<Food> findAll() throws Exception {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql:///food_consumption_manager", "root", "123456");
String sql = "select * from food";
PreparedStatement pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
List<Food> foodList = new ArrayList<Food>();
while(rs.next()){
Food food = new Food();
food.setId(rs.getInt("id"));
food.setName(rs.getString("name"));
food.setType(rs.getString("type"));
food.setPay(rs.getString("pay"));
food.setCanteen(rs.getString("canteen"));
foodList.add(food);
}
rs.close();
pstmt.close();
conn.close();
return foodList;
}
3、导入Excel表操作依赖包
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
4、将实体列表转化为HSSFWorkbook工作簿对象
public static HSSFWorkbook export(List<Food> foods){
System.out.println("进入HSSFWorkbook===========================");
// 创建excel对象
HSSFWorkbook wk = new HSSFWorkbook();
// 创建一张食物信息表
HSSFSheet sheet = wk.createSheet("食物信息表");
// 创建标题行
HSSFRow smallTitle = sheet.createRow(0);
smallTitle.createCell(0).setCellValue("食品id");
smallTitle.createCell(1).setCellValue("菜名");
smallTitle.createCell(2).setCellValue("菜品");
smallTitle.createCell(3).setCellValue("价格");
smallTitle.createCell(4).setCellValue("食堂");
int count=1;
for(Food food:foods){
HSSFRow row = sheet.createRow(count++);
row.createCell(0).setCellValue(food.getId());
row.createCell(1).setCellValue(food.getName());
row.createCell(2).setCellValue(food.getType());
row.createCell(3).setCellValue(food.getPay());
row.createCell(4).setCellValue(food.getCanteen());
}
return wk;
}
5、将HSSFWorkbook以流写入文件
public static void toExcel(HSSFWorkbook wk) throws Exception {
OutputStream outputStream = new FileOutputStream(new File("food.xls"));
wk.write(outputStream);
wk.close();
}
完整代码
public static void main(String[] args) throws Exception {
List<Food> foods = findAll();
for(Food food:foods){
System.out.println(food);
}
HSSFWorkbook hw = export(foods);
toExcel(hw);
}
public static List<Food> findAll() throws Exception {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql:///food_consumption_manager", "root", "123456");
String sql = "select * from food";
PreparedStatement pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
List<Food> foodList = new ArrayList<Food>();
while(rs.next()){
Food food = new Food();
food.setId(rs.getInt("id"));
food.setName(rs.getString("name"));
food.setType(rs.getString("type"));
food.setPay(rs.getString("pay"));
food.setCanteen(rs.getString("canteen"));
foodList.add(food);
}
rs.close();
pstmt.close();
conn.close();
return foodList;
}
public static HSSFWorkbook export(List<Food> foods){
System.out.println("进入HSSFWorkbook===========================");
// 创建excel对象
HSSFWorkbook wk = new HSSFWorkbook();
// 创建一张食物信息表
HSSFSheet sheet = wk.createSheet("食物信息表");
// 创建标题行
HSSFRow smallTitle = sheet.createRow(0);
smallTitle.createCell(0).setCellValue("食品id");
smallTitle.createCell(1).setCellValue("菜名");
smallTitle.createCell(2).setCellValue("菜品");
smallTitle.createCell(3).setCellValue("价格");
smallTitle.createCell(4).setCellValue("食堂");
int count=1;
for(Food food:foods){
HSSFRow row = sheet.createRow(count++);
row.createCell(0).setCellValue(food.getId());
row.createCell(1).setCellValue(food.getName());
row.createCell(2).setCellValue(food.getType());
row.createCell(3).setCellValue(food.getPay());
row.createCell(4).setCellValue(food.getCanteen());
}
return wk;
}
public static void toExcel(HSSFWorkbook wk) throws Exception {
OutputStream outputStream = new FileOutputStream(new File("food.xls"));
wk.write(outputStream);
wk.close();
}
输出文件结果