4.java项目页面导出excel功能

用的是SSM框架,字段根据自己的业务需求改

1.前台页面

 导出

/*导出按钮提交*/ function downloadExcel(){ $("#dynamicDownload").submit(); }

2.后台相关代码

import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

    /**
     * 导出考勤记录
     * @param request
     * @param response
     * @param model
     */
@RequestMapping(value="downloadExcel")
public void downLoadExcel(HttpServletRequest request,HttpServletResponse response,Model model){
      try{
         //1-查出要导出的数据
        String user_id = request.getSession().getAttribute("user_id").toString();//获取保存登陆信息的员工id
        HashMap paramMap = new HashMap();
        String date_start1 = request.getParameter("inpstart");
    String date_end1 = request.getParameter("inpend");
    String userORname1 = request.getParameter("userORname");
    String PART_NAME1 = request.getParameter("dId");
    paramMap.put("date_start", date_start1);
        paramMap.put("date_end", date_end1);
    paramMap.put("userORname", userORname1);
    paramMap.put("PART_NAME", PART_NAME1);
    List> sourceRecordList=sourceRecordService.selectSourceRecordNotpage(paramMap);
         //第一步,创建一个webbook,对应一个Excel文件
        HSSFWorkbook wk = new HSSFWorkbook();
        //第二步,创建一个sheet表对象,创建row对象,getExcelStyle1是一个创建模板的方法,最后面有
    HSSFSheet sheet = getExcelStyle1(wk,"考勤信息表");
        HSSFRow row;
    HSSFCellStyle style = wk.createCellStyle();
    HSSFFont font = wk.createFont();
    font.setFontName("微软雅黑");
    font.setFontHeightInPoints((short)15);
    style.setFont(font);
    style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
        //第三步,查询出表内容放到map中
    SimpleDateFormat sdf_out = new SimpleDateFormat("yyyyMMdd");
    String time_out = sdf_out.format(new Date());
    String srcPath=request.getSession().getServletContext().getRealPath("")+"/考勤信息"+time_out+".xls";//设置将excel数据上传至服务器的路径
         for(int i=0;i

ExportUtil 下载的工具类

    import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

import javax.servlet.http.HttpServletResponse;

import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.StringUtils;

public class ExportUtil {

    /**
     * 导出文件
     * 
     * @param response
     * @param file
     *            导出文件
     * @param name
     * @param contentType
     * @throws IOException
     */
    public static void download(HttpServletResponse response, File file,
            String name, String contentType) throws IOException {
        String fileName = StringUtils.isBlank(name) ? file.getName() : name;
        download(response, new FileInputStream(file), fileName, contentType);
    }

    /**
     * 下载数据/文件
     * 
     * @param response
     *            HTTP输出
     * @param inputStream
     *            文件流
     * @param fileName
     *            文件名
     * @param contentType
     *            ContentType in HTTP Header
     * @throws IOException
     *             IO异常
     */
    public static void download(HttpServletResponse response,
            InputStream inputStream, String fileName, String contentType)
            throws IOException {

        response.setContentType(StringUtils.isEmpty(contentType) ? "application/octet-stream"
                : contentType);
        response.setHeader("Content-Disposition", "attachment;filename="
                + new String(fileName.getBytes("gbk"), "ISO-8859-1"));
        response.setStatus(HttpServletResponse.SC_OK);

        BufferedInputStream reader = null;
        try {
            reader = new BufferedInputStream(inputStream);
            IOUtils.copy(reader, response.getOutputStream());
        } finally {
            if (reader != null) {
                reader.close();
            }
            if (inputStream != null) {
                inputStream.close();
            }
        }
    }
}

你可能感兴趣的:(4.java项目页面导出excel功能)