java技术--POI导出Excel(将数据库数据导出为Excel)

1.将数据有Excel导入数据库或者将数据库数据导入Excel,作为业务常用需求。
2.实现的方式主要有三种技术:POI,JXL,FASTExcel,这里对比前两种
(1)JXL:优缺点
<1>操作简单,效率低,部分支持
<2>可以修饰单元格属性,格式支持没有POI强大
<3>支持字体,数字,日期操作
(2)POI:优缺点
<1>效率高,操作相对复杂,支持公式,宏,图像图表
<2> 可以修饰单元格属性
<3>支持字体,数字,日期操作
(3)JXL与·POI共同点:
<1> 可以修饰单元格属性
<2>支持字体,数字,日期操作
3.JXL实现从数据库将数据导出到excel表格代码示例

      public class JxlExcel {
       public static void main(String[] args){
       //创建Excel文件
       String[] title={"姓名","课程","分数"};
       File file=new File("E:/sheet.xls");
       try{
             file.createNewFile();
             //创建工作簿
            WritableWorkBook wb = wb.createWorkBook(file);
            //创建sheet
            WritableSheet sheet = wb.createSheet("表格一",20);
            //创建行,设置列名
            Lable lable = null;
            for(int i=0;i<title.length;i++){
            第一个参数为列,第二个为行
            lable = new Lable(i,0,title[i]);
            sheet.addCell(lable);
            }
            Data data=new Data();
		    ResultSet rs=data.getString();
		    while(rs.next()) {
			System.out.println(rs.getString(1));
			label=new Label(0,rs.getRow(),rs.getString(1));
			sheet.addCell(label);
			label=new Label(1,rs.getRow(),rs.getString(2));
			sheet.addCell(label);
			label=new Label(2,rs.getRow(),rs.getString(3));
			sheet.addCell(label);
            }
            wb.write();
            wb.close();
       }catch(Exception e){
       e.printStackTrace();
       }
       }
}

4.在企业级实际应用开发中普遍使用POI
4.1:这里使用框架作为例子(spring+springmvc+hibernate),省略数据操作层!!
4.2:POI实现从数据库将数据导出到excel表格代码示例(这里省略数据库操作类)

 public class ExportDBToExcel{
    //导出的Excel保存路径,文件名,格式
    private String filePath = “E:\\sheet.xlsx”; 
    //相当于引入数据库连接
    @Resource
	private UserDAO  userDao;
	@Override
	public String ExportExcel() {
	//获取数据库表数据
	List<User> list = userDao.listAllUser();
	/**
	*开始将获取到的数据导入创建的Excel中
	*/
	//第一步创建workbook
	Workbook wb =  new XSSFWorkbook();
	//第二步创建表格
	Sheet sheet = wb.createSheet("用户信息表");
	//第三步创建标题行row:获取表头行,添加表头0行
	Row headersRow = sheet.createRow(0);
	String[] headers = {"用户编号","用户名","用户邮箱"};
	for(int i=0;i<headers.length;i++){
	// 第四步创建单元格,,设置首行style居中,字体,单元格大小等
	CellStyle style = workbook.createCellStyle();
	Cell cell = headersRow.createCell(i);**
	/**
	 * RichTextString:用来格式化单元格中的内容
	*/
			RichTextString text = new     XSSFRichTextString(headers[i]);
				cell.setCellValue(text);
				cell.setCellStyle(style);	
	}
	// 遍历把从数据库中取得的数据写入excel单元格内
	if(list!=null&&!list.isEmpty()){
	for(User user:list){
	// 每遍历一次,在末尾动态添加一行
	Row rowData = sheet.createRow(sheet.getLastRowNum() + 1);
	//动态添加数据
      rowData.createCell(0).setCellValue(caseBase.getId());	
      rowData.createCell(1).setCellValue(caseBase.getName());
      rowData.createCell(1).setCellValue(caseBase.getEmail());							        
	}
	}
	try {
	         //创建一个文件
			FileOutputStream fout = new FileOutputStream("E:\\case_base.xlsx");
			workbook.write(fout);
			fout.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return filePath;
	}
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以通过以下步骤实现: 1. 在Java中使用POI API创建Excel文件,并将数据库中的数据添加到Excel表格中。 2. 使用Java Servlet将Excel文件发送到前端。 3. 在前端使用JavaScript监听下载Excel文件的请求,并将Excel文件下载到本地。 下面是一个简单的Java代码示例,用于将数据库中的数据导出Excel文件中: ```java // 创建Excel文档对象 Workbook workbook = new HSSFWorkbook(); Sheet sheet = workbook.createSheet("Sheet1"); // 从数据库中读取数据 List<User> userList = userService.getAllUsers(); // 将数据添加到Excel表格中 int rowIndex = 0; for (User user : userList) { Row row = sheet.createRow(rowIndex++); row.createCell(0).setCellValue(user.getId()); row.createCell(1).setCellValue(user.getName()); row.createCell(2).setCellValue(user.getEmail()); } // 将Excel文件发送到前端 response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-Disposition", "attachment; filename=users.xls"); workbook.write(response.getOutputStream()); ``` 对于前端部分,可以使用以下JavaScript代码监听Excel文件下载请求并将文件下载到本地: ```javascript // 监听下载请求 document.getElementById("downloadButton").addEventListener("click", function() { // 发送请求下载Excel文件 fetch("/downloadExcel").then(function(response) { // 将Excel文件保存到本地 response.blob().then(function(blob) { let url = window.URL.createObjectURL(blob); let a = document.createElement("a"); a.href = url; a.download = "users.xls"; document.body.appendChild(a); a.click(); a.remove(); }); }); }); ``` 这里的 `downloadButton` 是一个按钮元素,点击该按钮会触发Excel文件下载请求。`/downloadExcel` 是Java Servlet的URL,用于发送Excel文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值