poi报表导出

博主分享了两种使用POI库导出Excel报表的方法。一是直接用原生对象操作,适合简单报表,但处理复杂报表时会遇到困难。二是采用模板法,预先创建带样式的Excel模板,通过读取模板并填充数据来生成报表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目前本人主要使用两种方法1.用原生的对象进行操作不使用模板,但是在表比较复杂是会有许多麻烦;2.模板法,若想生成的表格较复杂,可以先做一个空excel表格模板将样式做好,然后用输入流将整个文件读取再封装成excel对象然后进行遍历插入数据;

方法一:  工具类(封装生成excel和相应样式的方法)

package com.adon.util;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;

import org.apache.poi.hssf.usermodel.HSSFCell;
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;
import org.apache.poi.hssf.util.CellRangeAddress;
import org.apache.poi.hssf.util.HSSFColor;

public class BuildExcel {
	/**
	 * 生成Excel
	 * @param columnNum 列数
	 * @param itemMarks 列头名称 对应 Map中的Key
	 * @param itemParaps 列头名称
	 * @param list 数据
	 * @return
	 */
	public static HSSFWorkbook getInputStream(int columnNum, String[] itemMarks, String[] itemParaps, List list,String title){
        HSSFWorkbook workbook = new HSSFWorkbook();                     // 创建工作簿对象  
        HSSFSheet sheet = workbook.createSheet();                       // 创建工作表  
        sheet.setDefaultColumnWidth ((short)20);                        // 设置工作表列宽  
        sheet.setDefaultRowHeight((short)10);                           // 设置工作表行高  


        
        //sheet样式定义
        HSSFCellStyle columnTopStyle = getColumnTopStyle(workbook);		//获取列头样式对象  
        HSSFCellStyle style = getStyle(workbook);                  		//单元格样式对象  
 
        
        //<span style="color:#FF0000;"><em><strong>下面五行代码就是设置表头的代码</strong></em></span>(原理是将第1、2行合并单元格后作为表头区域)
        // 产生表格标题行  
        HSSFRow rowm = sheet.createRow(0);  
        HSSFCell cellTiltle = rowm.createCell(0); 
        sheet.addMergedRegion(new CellRangeAddress(0, 1, 0, (itemMarks.length-1)));    
        cellTiltle.setCellStyle(columnTopStyle);  
        cellTiltle.setCellValue(title); 
 
        
        
        
        //设置列头  
        HSSFRow row1 = sheet.createRow((short)2);               		// 在索引0的位置创建行(最顶端的行)  
        HSSFCell cell1 = null;                                  		// 在索引0的位置创建单元格(左上端)  
        // 将列头设置到sheet的单元格中  
        for(int n=0;n<columnNum;n++){  
            cell1 = row1.createCell((short)(n));                		//创建列头对应个数的单元格  
            cell1.setCellType(HSSFCell.CELL_TYPE_STRING);       		//设置列头单元格的数据类型  
            try {
				cell1.setCellValue(new String(itemParaps[n].getBytes("utf-8"),"UTF-8"));
			} catch (UnsupportedEncodingException e) {
				e.printStackTrace();
			}                       									//设置列头单元格的值  
            cell1.setCellStyle(columnTopStyle);                 		//设置列头单元格样式  
        }  
        //将查询出的数据设置到sheet对应的单元格中   
        if(list != null){
	        for(int i=0;i<list.size();i++){  
	        	Map map = (Map)list.get(i);									//遍历每个对象 
	            //创建行(从下面的i+1要注意,第0行是列头,因此创建新行要从下一行开始)  
	            HSSFRow row = sheet.createRow(i+3);                         //创建所需的行数  
	            for(short j=0;j<columnNum;j++){  
	                HSSFCell cell = row.createCell(j,HSSFCell.CELL_TYPE_STRING);//设置单元格的数据类型 
	                if(map.get(itemMarks[j])!=null){
	                	cell.setCellValue(map.get(itemMarks[j]).toString());        //设置单元格的值
	                }else{
	                	cell.setCellValue("");
	                }
	                cell.setCellStyle(style);                                   //设置单元格样式  
	            }     
	        }
        }
     //   ByteArrayOutputStream baos = new ByteArrayOutputStream();
       // ByteArrayInputStream  is = null;
        
       
       /* try {
			workbook.write(baos);
			byte[] content = baos.toByteArray(); 
			is = new ByteArrayInputStream(content,0,content.length);
	        baos.flush();        // 缓冲  
			baos.close(); // 关闭流         
		} catch (IOException e) {
			e.printStackTrace();
		}*/
        
        return workbook;
	}
	
	
	
	
	
	
	
	/**
	 * 生成双公示Excel(注意与上方法有点不同)
	 * @param columnNum 列数
	 * @param itemMarks 列头名称 对应 Map中的Key
	 * @param itemParaps 列头名称
	 * @param list 数据
	 * @return
	 */
	public static HSSFWorkbook getInputStreamSGS(int columnNum, String[] itemMarks, String[] itemParaps, List list,String title){
        HSSFWorkbook workbook = new HSSFWorkbook();                     // 创建工作簿对象  
        HSSFSheet sheet = workbook.createSheet();                       // 创建工作表  
        sheet.setDefaultColumnWidth ((short)20);                        // 设置工作表列宽  
        sheet.setDefaultRowHeight((short)10);                           // 设置工作表行高  


        
        //sheet样式定义
        HSSFCellStyle columnTopStyle = getColumnTopStyle(workbook);		//获取列头样式对象  
        HSSFCellStyle style = getStyle(workbook);                  		//单元格样式对象  
 
        
        
        // 产生表格标题行  
        HSSFRow rowm = sheet.createRow(0);  
        HSSFCell cellTiltle = rowm.createCell(0); 
        sheet.addMergedRegion(new CellRangeAddress(0, 1, 0, (itemParaps.length-1)));    
        cellTiltle.setCellStyle(columnTopStyle);  
        cellTiltle.setCellValue(title); 
 
        
        
        
        //设置列头  
        HSSFRow row1 = sheet.createRow((short)2);               		// 在索引0的位置创建行(最顶端的行)  
        HSSFCell cell1 = null;                                  		// 在索引0的位置创建单元格(左上端)  
        // 将列头设置到sheet的单元格中  
        for(int n=0;n<columnNum;n++){  
            cell1 = row1.createCell((short)(n));                		//创建列头对应个数的单元格  
            cell1.setCellType(HSSFCell.CELL_TYPE_STRING);       		//设置列头单元格的数据类型  
            try {
				cell1.setCellValue(new String(itemParaps[n].getBytes("utf-8"),"UTF-8"));
			} catch (UnsupportedEncodingException e) {
				e.printStackTrace();
			}                       									//设置列头单元格的值  
            cell1.setCellStyle(columnTopStyle);                 		//设置列头单元格样式  
        }  
        //将查询出的数据设置到sheet对应的单元格中   
        if(list != null){
	        for(int i=0;i<list.size();i++){  
	        	Map map = (Map)list.get(i);									//遍历每个对象 
	            //创建行(从下面的i+1要注意,第0行是列头,因此创建新行要从下一行开始)  
	            HSSFRow row = sheet.createRow(i+3);                         //创建所需的行数  
	            
	            //项目名称
	            HSSFCell cell = row.createCell(0,HSSFCell.CELL_TYPE_STRING);//设置单元格的数据类型 
	            //cell.setCellValue(map.get(itemMarks[1])+"车牌号为:"+map.get(itemMarks[0])+"车辆申请载运大件"+map.get(itemMarks[2])+"行驶河南省普通公路行政许可案");        //设置单元格的值
	            cell.setCellValue("在省、自治区范围内跨设区的市进行超限运输");        //设置单元格的值
	            cell.setCellStyle(style);      
	            //设定依据
	            HSSFCell cell2 = row.createCell(1,HSSFCell.CELL_TYPE_STRING);//设置单元格的数据类型 
	            cell2.setCellValue("《公路安全保护条例》第三十六条第二款");        //设置单元格的值
	            cell2.setCellStyle(style);  
	            //行政许可结果
	            DecimalFormat dft = new DecimalFormat("0000000");
	            String passportCard=dft.format(new BigDecimal(map.get(itemMarks[11])+"") );
	            
	            HSSFCell cell3 = row.createCell(2,HSSFCell.CELL_TYPE_STRING);//设置单元格的数据类型 
	            cell3.setCellValue("准予"+map.get(itemMarks[1])+""+map.get(itemMarks[0])+"车辆行驶"+map.get(itemMarks[12])+"路线,发放《河南省普通公路超限运输通行证》通行证编号:"+passportCard);        //设置单元格的值
	            
	            cell3.setCellStyle(style);     
	            //许可决定书文号
	            DecimalFormat df = new DecimalFormat("0000");
	            String wen=df.format(map.get(itemMarks[4]));
	            HSSFCell cell4 = row.createCell(3,HSSFCell.CELL_TYPE_STRING);//设置单元格的数据类型 
	            cell4.setCellValue("["+map.get(itemMarks[3])+"]"+wen+"号");        //设置单元格的值
	            cell4.setCellStyle(style);  
	            //许可时限
	            SimpleDateFormat sdfFolderDir = new SimpleDateFormat("yyyy-MM-dd");
	            String startTime   = sdfFolderDir.format(new Date((Long)((Map)(map.get(itemMarks[6]))).get("time")));
	            String endTime     = sdfFolderDir.format(new Date((Long)((Map)(map.get(itemMarks[7]))).get("time")));
	           
	            HSSFCell cell5 = row.createCell(4,HSSFCell.CELL_TYPE_STRING);//设置单元格的数据类型 
	            cell5.setCellValue(startTime+"至"+endTime);        //设置单元格的值
	            cell5.setCellStyle(style);     
	            //审批部门
	            HSSFCell cell6 = row.createCell(5,HSSFCell.CELL_TYPE_STRING);//设置单元格的数据类型 
	            cell6.setCellValue("河南省交通运输厅公路管理局");        //设置单元格的值
	            cell6.setCellStyle(style);  
/*	            for(short j=0;j<columnNum;j++){  
	                HSSFCell cell = row.createCell(j,HSSFCell.CELL_TYPE_STRING);//设置单元格的数据类型 
	                if(map.get(itemMarks[j])!=null){
	                	cell.setCellValue(map.get(itemMarks[j]).toString());        //设置单元格的值
	                }else{
	                	cell.setCellValue("");
	                }
	                cell.setCellStyle(style);                                   //设置单元格样式  
	            } */    
	        }
        }
     //   ByteArrayOutputStream baos = new ByteArrayOutputStream();
       // ByteArrayInputStream  is = null;
        
       
       /* try {
			workbook.write(baos);
			byte[] content = baos.toByteArray(); 
			is = new ByteArrayInputStream(content,0,content.length);
	        baos.flush();        // 缓冲  
			baos.close(); // 关闭流         
		} catch (IOException e) {
			e.printStackTrace();
		}*/
        
        return workbook;
	}
	
	
	/**
	 * 生成Excel
	 * @param columnNum 列数
	 * @param itemMarks 列头名称 对应 Map中的Key
	 * @param itemParaps 列头名称
	 * @param list 数据
	 * @return
	 */
	public static InputStream getInputStream_test(int columnNum, String[] itemMarks, String[] itemParaps, List list){
        HSSFWorkbook workbook = new HSSFWorkbook();                     // 创建工作簿对象  
        HSSFSheet sheet = workbook.createSheet();                       // 创建工作表  
        sheet.setDefaultColumnWidth ((short)20);                        // 设置工作表列宽  
        sheet.setDefaultRowHeight((short)10);                           // 设置工作表行高  
        //sheet样式定义
        HSSFCellStyle columnTopStyle = getColumnTopStyle(workbook);		//获取列头样式对象  
        HSSFCellStyle style = getStyle(workbook);                  		//单元格样式对象  
        //设置列头  
        HSSFRow row1 = sheet.createRow((short)0);               		// 在索引0的位置创建行(最顶端的行)  
        HSSFCell cell1 = null;                                  		// 在索引0的位置创建单元格(左上端)  
        // 将列头设置到sheet的单元格中  
        for(int n=0;n<columnNum;n++){  
            cell1 = row1.createCell((short)(n));                		//创建列头对应个数的单元格  
            cell1.setCellType(HSSFCell.CELL_TYPE_STRING);       		//设置列头单元格的数据类型  
            try {
				cell1.setCellValue(new String(itemParaps[n].getBytes("utf-8"),"UTF-8"));
			} catch (UnsupportedEncodingException e) {
				e.printStackTrace();
			}                       									//设置列头单元格的值  
            cell1.setCellStyle(columnTopStyle);                 		//设置列头单元格样式  
        }  
        //将查询出的数据设置到sheet对应的单元格中   
        if(list != null){
	        for(int i=0;i<list.size();i++){  
	        	Map map = (Map)list.get(i);									//遍历每个对象 
	            //创建行(从下面的i+1要注意,第0行是列头,因此创建新行要从下一行开始)  
	            HSSFRow row = sheet.createRow(i+1);                         //创建所需的行数  
	            for(short j=0;j<columnNum;j++){  
	                HSSFCell cell = row.createCell(j,HSSFCell.CELL_TYPE_STRING);//设置单元格的数据类型 
	                if(map.get(itemMarks[j])!=null){
	                	cell.setCellValue(map.get(itemMarks[j]).toString());        //设置单元格的值
	                }else{
	                	cell.setCellValue("");
	                }
	                cell.setCellStyle(style);                                   //设置单元格样式  
	            }     
	        }
        }
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        ByteArrayInputStream  is = null;
        try {
			workbook.write(baos);
			byte[] content = baos.toByteArray(); 
			is = new ByteArrayInputStream(content,0,content.length);
	        baos.flush();        // 缓冲  
			baos.close(); // 关闭流         
		} catch (IOException e) {
			e.printStackTrace();
		}
        return is;
	}
	
	/*  
	 * 列头单元格样式 
	 */      
	public static HSSFCellStyle getColumnTopStyle(HSSFWorkbook workbook) {  
	      // 设置字体  
	      HSSFFont font = workbook.createFont();  
	      //设置字体大小  
	      font.setFontHeightInPoints((short)11);  
	      //字体加粗  
	      font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);  
	      //设置字体名字   
	      font.setFontName("Courier New");  
	      //设置样式;   
	      HSSFCellStyle style = workbook.createCellStyle();  
	      //设置底边框;   
	      style.setBorderBottom(HSSFCellStyle.BORDER_THIN);  
	      //设置底边框颜色;    
	      style.setBottomBorderColor(HSSFColor.BLACK.index);  
	      //设置左边框;     
	      style.setBorderLeft(HSSFCellStyle.BORDER_THIN);  
	      //设置左边框颜色;   
	      style.setLeftBorderColor(HSSFColor.BLACK.index);  
	      //设置右边框;   
	      style.setBorderRight(HSSFCellStyle.BORDER_THIN);  
	      //设置右边框颜色;   
	      style.setRightBorderColor(HSSFColor.BLACK.index);  
	      //设置顶边框;   
	      style.setBorderTop(HSSFCellStyle.BORDER_THIN);  
	      //设置顶边框颜色;    
	      style.setTopBorderColor(HSSFColor.BLACK.index);
	      //设置单元格背景颜色
	      //style.setFillBackgroundColor(HSSFColor.BLUE.index);
	      
	      style.setFillForegroundColor(HSSFColor.TAN.index);
	      style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
	      
	      //在样式用应用设置的字体;    
	      style.setFont(font);  
	      //设置自动换行;   
	      style.setWrapText(false);  
	      //设置水平对齐的样式为居中对齐;    
	      style.setAlignment(HSSFCellStyle.ALIGN_CENTER);  
	      //设置垂直对齐的样式为居中对齐;   
	      style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);  
	      return style;  
	}  
  
	/*   
	 * 列数据信息单元格样式 
	 */    
	public static HSSFCellStyle getStyle(HSSFWorkbook workbook) {  
	      // 设置字体  
	      HSSFFont font = workbook.createFont();  
	      //设置字体大小  
	      //font.setFontHeightInPoints((short)10);  
	      //字体加粗  
	      //font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);  
	      //设置字体名字   
	      font.setFontName("Courier New");  
	      //设置样式;   
	      HSSFCellStyle style = workbook.createCellStyle();  
	      //设置底边框;   
	      style.setBorderBottom(HSSFCellStyle.BORDER_THIN);  
	      //设置底边框颜色;    
	      style.setBottomBorderColor(HSSFColor.BLACK.index);  
	      //设置左边框;     
	      style.setBorderLeft(HSSFCellStyle.BORDER_THIN);  
	      //设置左边框颜色;   
	      style.setLeftBorderColor(HSSFColor.BLACK.index);  
	      //设置右边框;   
	      style.setBorderRight(HSSFCellStyle.BORDER_THIN);  
	      //设置右边框颜色;   
	      style.setRightBorderColor(HSSFColor.BLACK.index);  
	      //设置顶边框;   
	      style.setBorderTop(HSSFCellStyle.BORDER_THIN);  
	      //设置顶边框颜色;    
	      style.setTopBorderColor(HSSFColor.BLACK.index);  
	      //在样式用应用设置的字体;    
	      style.setFont(font);  
	      //设置自动换行;   
	      style.setWrapText(false);  
	      //设置水平对齐的样式为居中对齐;    
	      style.setAlignment(HSSFCellStyle.ALIGN_CENTER);  
	      //设置垂直对齐的样式为居中对齐;   
	      style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);  
	      return style;  
	}
}
需要调用生成excel代码的使用调用传递参数代码

	//poi  报表导出
	
	
	@RequestMapping("/comprehensiveInquiry/exportSGSBBExcel")
	@ResponseBody
	public void exportSGSBBExcel(
			HttpServletRequest request, HttpServletResponse response) throws Exception{
		
	
		
		List<LimitApply>  lps=   (List<LimitApply>) limitApplyService.exportSGSBBExcel().get("data");
		
		String itemMark = "carNumber,transportDepartment,goodsName,whichYear,archivesNum,applyTime,startTime,endTime,startPlace,endPlace,handelDepartmentId,PASSPORT_CARD,trafficRoutes";
		String itemParap = "项目名称,设定依据,行政许可结果,许可决定书文号,许可时限,审批部门";
		
		String[] itemMarks = itemMark.split(",");//键
		String[] itemParaps = itemParap.split(",");//列头
		
		//双公示
		HSSFWorkbook workbook=	BuildExcel.getInputStreamSGS( itemParaps.length, itemMarks, itemParaps, lps,"河南省交通运输厅行政许可审批结果公示");
		response.setContentType("application/vnd.ms-excel;");    
		response.setHeader("Content-disposition", "attachment;filename="+ new String("河南省交通运输厅行政许可审批结果公示.xls".getBytes("GB2312"), "ISO8859_1"));// 设定输出文件头
		
		//   response.setHeader("Content-disposition", "attachment;filename=汇总.xls");    
		OutputStream ouputStream = response.getOutputStream();    
		workbook.write(ouputStream);
		
		ouputStream.flush();    
		ouputStream.close();
		
	}
	
方法二:先做好想生成excel的模板 然后读取此模板成excel对象后进行数据插入如果模板有单元格就直接插入,没有就生成插入

package oa.nsbd.controller;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONArray;
import oa.nsbd.model.JdproblemStatistics;
import oa.nsbd.model.NsbdStatistics;
import oa.nsbd.model.page.CommonProFindPage;
import oa.nsbd.service.GGProblemStatisService;
import oa.nsbd.service.JDProblemStaitsService;
import oa.nsbd.service.NsbdProblemStatisticsService;

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.poi.hssf.util.Region;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * @author 

 * @date:
 * @version :
 *
 */
@Controller
public class ExlExportController {
	@Autowired
	private NsbdProblemStatisticsService nsbdservice;
	@Autowired
	private JDProblemStaitsService jdservice;
	@Autowired GGProblemStatisService ggservice;

	/**
	 *  
	 * @param request
	 * @param responsensbdupdatestatis
	 * @param compage
	 */
	@RequestMapping(value = "/exlExport/exlExportFindnsbdproblemstatishz")
	@ResponseBody
	public void exlExportFindnsbdproblemstatishz(HttpServletRequest request,
			HttpServletResponse response, CommonProFindPage compage){
		String url=request.getSession().getServletContext().getRealPath("/");
		String path = url+"\\exlModel\\1-1.xls";
		OutputStream ouputStream = null;
		try {
			HSSFWorkbook workbook=	null;//接收到的报表对象

			InputStream inputStream = new FileInputStream(path);
			workbook = new HSSFWorkbook(inputStream);
			HSSFSheet sheet = workbook.getSheetAt(0);

			//获取样式
			HSSFRow styRow = null;
			HSSFCell styCell = null;
			HSSFCellStyle style_01 = null;

			styRow = sheet.getRow(4);
			styCell = styRow.getCell(3);
			style_01 = styCell.getCellStyle();

			HSSFRow dataRow = null;
			HSSFCell dataCell = null;

			List<NsbdStatistics> nsbdfjlist=nsbdservice.findNsbdFjHZ(compage);
			/* System.out.println(nsbdfjlist.size()+"dddddd");
			 //首页合计排名*/
			 compage.setSszy("合计");
			 List<NsbdStatistics> detaillist=nsbdservice.findSSZYDetail(compage);
			 //分局统计
				for(int i=0;i<nsbdfjlist.size();i++){
					if(i==(nsbdfjlist.size()-1)){
						dataRow=sheet.getRow(13);
					}else{
						dataRow=sheet.getRow(i+2);
					}
					if(!"".equals(nsbdfjlist.get(i).getSszy())){//所属专业
						dataCell=dataRow.getCell(2);
						dataCell.setCellValue(nsbdfjlist.get(i).getSszy());
					}
					if(!"".equals(nsbdfjlist.get(i).getPronum())){//问题总数
						dataCell=dataRow.getCell(3);
						dataCell.setCellValue(nsbdfjlist.get(i).getPronum());
					}
					if(!"".equals(nsbdfjlist.get(i).getYizg())){//已整改
						dataCell=dataRow.getCell(4);
						dataCell.setCellValue(nsbdfjlist.get(i).getYizg());
					}
					if(!"".equals(nsbdfjlist.get(i).getLinshicl())){//临时处理整改
						dataCell=dataRow.getCell(5);
						dataCell.setCellValue(nsbdfjlist.get(i).getLinshicl());
					}
					if(!"".equals(nsbdfjlist.get(i).getWeizg())){//问题总数
						dataCell=dataRow.getCell(6);
						dataCell.setCellValue(nsbdfjlist.get(i).getWeizg());
					}
					if(!"".equals(nsbdfjlist.get(i).getZgpro())){//问题整改率
						dataCell=dataRow.getCell(7);
						dataCell.setCellValue(nsbdfjlist.get(i).getZgpro()+"%");
					}
				}
				
				for(int i=0;i<detaillist.size();i++){
					dataRow = sheet.createRow(17+i);
					dataRow.setHeight((short)600);
					dataCell = dataRow.createCell(0);
					dataCell.setCellValue(i+1);
					dataCell.setCellStyle(style_01);
					dataCell = dataRow.createCell(1);
					dataCell.setCellValue(detaillist.get(i).getGlc());
					dataCell.setCellStyle(style_01);
					dataCell = dataRow.createCell(2);
					dataCell.setCellValue("合计");
					dataCell.setCellStyle(style_01);
					if(!"".equals(detaillist.get(i).getPronum())){//问题总数
						dataCell=dataRow.createCell(3);
						dataCell.setCellValue(detaillist.get(i).getPronum());
						dataCell.setCellStyle(style_01);
					}
					if(!"".equals(detaillist.get(i).getYizg())){//已整改问题数量
						dataCell=dataRow.createCell(4);
						dataCell.setCellValue(detaillist.get(i).getYizg());
						dataCell.setCellStyle(style_01);
					}
					if(!"".equals(detaillist.get(i).getLinshicl())){//临时处理数量
						dataCell=dataRow.createCell(5);
						dataCell.setCellValue(detaillist.get(i).getLinshicl());
						dataCell.setCellStyle(style_01);
					}
					if(!"".equals(detaillist.get(i).getWeizg())){//未整改数量
						dataCell=dataRow.createCell(6);
						dataCell.setCellValue(detaillist.get(i).getWeizg());
						dataCell.setCellStyle(style_01);
					}
					if(!"".equals(detaillist.get(i).getZgpro())){//整改率
						dataCell=dataRow.createCell(7);
						dataCell.setCellValue(detaillist.get(i).getZgpro()+"%");
						dataCell.setCellStyle(style_01);
					}
					
				}

			response.setContentType("application/vnd.ms-excel;");    
			response.setHeader("Content-disposition", "attachment;filename="+ new String("河南分局整改情况统计表.xls".getBytes("GB2312"), "ISO8859_1"));// 设定输出文件头

			ouputStream = response.getOutputStream();    
			workbook.write(ouputStream);

			ouputStream.flush();    
			ouputStream.close();
		} catch (Exception e) {
			e.printStackTrace();
		} finally{
			try {
				ouputStream.flush();
				ouputStream.close();
			} catch (IOException e) {
				e.printStackTrace();
			}    
		}

	}

	
	
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值