使用POI完成 EXCEL的 导出和导入

    private File file; //上传的文件
    private String fileFileName; //文件名称
    private String fileContentType; //文件类型




/**
     * 导出数据
     * @return
     */
    public String exportData(){
        formBean=this.provinceInfoServiceImpl.searchAll(formBean);
        List<TProvinceinfo> exprotData = formBean.getResultList();
        session.put("exprotData", exprotData);
        return SUCCESS;
    }
    /**
     * 导入数据
     * @return
     * @throws Exception
     */
    public String importData() throws Exception{
        //创建文件输入流对象
        FileInputStream is = new FileInputStream(file) ;
        //通过输入流创建工作簿
        HSSFWorkbook workBook = new HSSFWorkbook(is);
        HSSFSheet sheet = workBook.getSheetAt(0);
        //获取总行数
        int totalRowNum = sheet.getLastRowNum();
        //这里i<==   循环遍历导入工作簿行数 取出相关数据
        for (int i = 0; i <= totalRowNum; i++) {
            HSSFRow row = sheet.getRow(i);
            for (int j = 0; j < row.getLastCellNum(); j++) {
                //打印出导入的内容
                System.out.print(row.getCell(j));
            }
            System.out.println("");
        }
        dataMap.put("uploadResult", true);
            return SUCCESS;
    }
package com.lmy.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

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 com.hy.entity.TProvinceinfo;

public class Download extends HttpServlet {

    /**
     * The doGet method of the servlet. <br>
     *
     * This method is called when a form has its tag value method equals to get.
     * 
     * @param request the request send by the client to the server
     * @param response the response send by the server to the client
     * @throws ServletException if an error occurred
     * @throws IOException if an error occurred
     */
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        response.setContentType("text/html");
        response.setContentType("application/vnd.ms-excel;charset=UTF-8");
        response.setHeader("Content-Disposition", "attachment;filename=exportData.xls"); 
        
        ServletOutputStream outStream = response.getOutputStream();
        //创建工作簿
        HSSFWorkbook workbook = new HSSFWorkbook();
        HSSFSheet sheet = workbook.createSheet("省数据");
        HttpSession session = request.getSession();
        //从session中获取相关数据
        List<TProvinceinfo>exprotData=(List<TProvinceinfo>) session.getAttribute("exprotData");
        //初始化标题
        List<String> title = new ArrayList<String>(3);
        title.add("省级ID");
        title.add("省级名称");
        title.add("备注");
      //创建行
        HSSFRow row = sheet.createRow(0);
        //创建单元格
        HSSFCell cell = row.createCell(0);//
        //赋值
        cell.setCellValue(title.get(0));
        HSSFCell cell1 = row.createCell(1);//
        cell1.setCellValue(title.get(0));
        HSSFCell cell2 = row.createCell(2);//
        cell2.setCellValue(title.get(2));
        for (int i = 1; i <= exprotData.size(); i++) {
            //循环数据 创建对应行数据
            HSSFRow rows = sheet.createRow(i);//创建行
                HSSFCell cells1 = rows.createCell(0);//
                cells1.setCellValue(exprotData.get(i-1).getFProvinceID());
                HSSFCell cells2 = rows.createCell(1);//
                cells2.setCellValue(exprotData.get(i-1).getFProviceName());
                HSSFCell cells3 = rows.createCell(2);//
                cells3.setCellValue(exprotData.get(i-1).getFRemark());
        }
        //导出工作簿
        workbook.write(outStream);
        outStream.flush();
        outStream.close();
        
    }

}
原文地址:https://www.cnblogs.com/cnjava/p/3076245.html