需求
后台数据库那么多数据,用户要看,但用户也不懂数据库操作,这时就可以将数据库数据导出成Excel文件,方便用户阅读
那如何实现呢?其实Java中的POI已经对接了Office的接口了,我们可以直接使用Java中的POI工具导出各种各样的Excel表格,下面就一个简单的例子教大家怎么实现导出Excel的功能
案例
后台数据按要求导出如下Excel表格
代码
核心代码
public static void exportExcel() throws IOException {
// 创建Excel工作表
HSSFWorkbook wb = new HSSFWorkbook();
// 创建工作簿
HSSFSheet sheet = wb.createSheet("table"); //创建table工作薄
// row 行 cell 单元格
HSSFRow row;
HSSFCell cell;
// 自上而下,自左向右,一行行创建单元格
for(int i = 0; i < datas.length; i++) {
row = sheet.createRow(i);//创建表格行
for(int j = 0; j < datas[i].length; j++) {
cell = row.createCell(j);//根据表格行创建单元格
cell.setCellValue(String.valueOf(datas[i][j]));
}
}
// 写出文件
wb.write(new FileOutputStream("C:\\Users\\zwx1067583\\Desktop\\excel_demo.xls"));
}
具体步骤:
1.先创建工作表HSSFWorkbook
2.在创建工作簿HSSFWorkbook
3.然后再工作簿中一行一行的创建单元格,注意
单元格cell是由行row进行创建的,即表示某某单元格是属于某某行的
4.写入到文件中,注意
也可以写入到HttpServletResponse对象里,由浏览器下载Excel文件
完整测试代码如下
// poi excel
import org.apache.poi.hssf.usermodel.HSSFCell;// 单元格
import org.apache.poi.hssf.usermodel.HSSFRow;// 单元行
import org.apache.poi.hssf.usermodel.HSSFSheet;// 工作表
import org.apache.poi.hssf.usermodel.HSSFWorkbook;// Excel对象
// other
import java.io.FileOutputStream;
import java.io.IOException;
public class PoiDemo {
// 模拟数据
private static Object[][] datas = {{"区域", "总销售额(万元)", "总利润(万元)简单的表格"},
{"江苏省" , 9045, 2256}, {"广东省", 3000, 690},
{"山西省" , 9046, 2257}, {"福建省", 3001, 691}};
/**
* 主函数
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
exportExcel();
}
/**
* 导出Excel
* @throws IOException
*/
public static void exportExcel() throws IOException {
// 创建Excel工作表
HSSFWorkbook wb = new HSSFWorkbook();
// 创建工作簿
HSSFSheet sheet = wb.createSheet("table"); //创建table工作薄
// row 行 cell 单元格
HSSFRow row;
HSSFCell cell;
// 自上而下,自左向右,一行行创建单元格
for(int i = 0; i < datas.length; i++) {
row = sheet.createRow(i);//创建表格行
for(int j = 0; j < datas[i].length; j++) {
cell = row.createCell(j);//根据表格行创建单元格
cell.setCellValue(String.valueOf(datas[i][j]));
}
}
// 写出文件
wb.write(new FileOutputStream("C:\\Users\\zwx1067583\\Desktop\\excel_demo.xls"));
}
}