欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

poi(2)---excel导出

程序员文章站 2022-07-13 13:01:01
...

直接查询数据写入到excel,然后上传到服务

package com.cn.util;

import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;

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;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.CreationHelper;

import com.cn.entity.User;

/**
 * 导出excel
 * */
public class ExportExcel {
	public static void main(String[] args) {
		//1.创建一个User对象的集合(此处模拟数据)
		List<User> userList=new ArrayList<User>();
		//2.循环模拟赋值
		for(int i=0;i<10;i++){
			//创建一个user对象
			User user =new User();
			String uuid=UUID.randomUUID().toString().substring(0, 3)+i;
			//添加数据
			user.setId(i);
			user.setUsername(uuid);
			user.setAge(20+i);
			String sex=i%2==0?"男":"女";
			user.setSex(sex);
			user.setBirthday(new Date());
			
			//加入到集合中
			userList.add(user);
		}
		//1、创建excel工作簿
		HSSFWorkbook workbook=new HSSFWorkbook();
		//2.创建一个工作表,sheet。并命名为用sheet1
		HSSFSheet sheet=workbook.createSheet("sheet1");
		//3.设置表格列宽
		sheet.setColumnWidth(4, 20*256);
		//4.创建标题行
		/**
		 * 在sheet里创建第一行,参数为行索引,可以是0-65535之间的任何一个
		 * */
		HSSFRow row=sheet.createRow(0);
		
		//5.首行单元格
		row.createCell(0).setCellValue("编号ID");
		row.createCell(1).setCellValue("姓名");
		row.createCell(2).setCellValue("年龄");
		row.createCell(3).setCellValue("性别");
		row.createCell(4).setCellValue("生日");
		//6.定义i行
		int i=1;
		//7.格式化时间
		CreationHelper helper=workbook.getCreationHelper();
		//创建样式
		CellStyle style=workbook.createCellStyle();
		style.setDataFormat(helper.createDataFormat().getFormat("yyyy-MM-dd hh:mm:ss"));
		//设置样式字体居中
		for(User user:userList){
			//创建行
			HSSFRow createRow=sheet.createRow((short)i);
			//加载数据
			createRow.createCell(0).setCellValue(user.getId());
			createRow.createCell(1).setCellValue(user.getUsername());
			createRow.createCell(2).setCellValue(user.getAge());
			createRow.createCell(3).setCellValue(user.getSex());
			
			HSSFCell createCell4=createRow.createCell(4);
			createCell4.setCellStyle(style);
			createCell4.setCellValue(user.getBirthday());
			//变量加1
			i++;
		}
		try{
			//文件输出流
			FileOutputStream fs=new FileOutputStream("e:\\poi\\user.xls");
			//输出excel
			workbook.write(fs);
			fs.flush();
			//关闭输出流
			fs.close();
			System.out.println("文件已保存");
		}catch(Exception e){
			e.printStackTrace();
		}
	}
}