Java web项目利用POI导出excel

本文介绍了如何在Java Web项目中利用Apache POI库来创建并导出Excel文件,特别解决了在导出过程中中文名称显示的问题。
摘要由CSDN通过智能技术生成

今天做项目需要导出excel文件,采用POI生成excel结构。方式如下:(解决了中文名称下载问题

方式一:
import java.io.ByteArrayOutputStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletResponse;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class ProcessExcelAction extends ActionSupport {

     public void export() {
          // 第一步,创建一个webbook,对应一个Excel文件
          HSSFWorkbook wb = new HSSFWorkbook();
          // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
          HSSFSheet sheet = wb.createSheet("学生表一");
          // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
          HSSFRow row = sheet.createRow((int) 0);
          // 第四步,创建单元格,并设置值表头 设置表头居中
          HSSFCellStyle style = wb.createCellStyle();
          style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
          String fileName = "学生.xls";
          HttpServletResponse response = ServletActionContext.getResponse();
          this.setResponseHeader(response, fileName);
          HSSFCell cell = row.createCell(0);
          cell.setCellValue("学号");
          cell.setCellStyle(style);
          cell = row.createCell(1);
          cell.setCellValue("姓名");
          cell.setCellStyle(style);
          cell = row.createCell(2);
          cell.setCellValue("年龄");
          cell.setCellStyle(style);
          cell = row.createCell(3);
          cell.setCellValue("生日");
          cell.setCellStyle(style);

          // 第五步,写入实体数据 实际应用中这些数据从数据库得到,
          List<Student> list = gainStudent();

          for (int i = 0; i < list.size(); i++) {
         
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值