Java带样式导出excle(poi)

本文介绍了一种使用Java POI库来创建带样式的Excel文件的方法。首先展示了一个工具类,该类用于创建单元格并设置内容。接着详细说明了如何在控制器中调用这个工具类,通过接收请求参数,获取数据列表,定义标题和列名,然后导出为带有特定列宽的Excel文件,文件名为当前日期时间。整个过程展示了如何将数据转化为易于阅读和分析的Excel表格。
摘要由CSDN通过智能技术生成

1.工具类

package com.hand.util;



import java.io.IOException;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;


import javax.servlet.http.HttpServletRequest;
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.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFPalette;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
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.HSSFColor;
import org.apache.poi.ss.util.CellRangeAddress;


import com.hand.pojo.ComplianceAlarm;








/**
 * 导出Excel公共方法
 * 
 * @version 1.0
 * 
 * @author zsj
 * 
 */
public class ExportExcel {


// 显示的导出表的标题
private String title;
// 导出表的列名
private String[] rowName;


private List<ComplianceAlarm>  dataList = new ArrayList<ComplianceAlarm>();

HttpServletResponse response;


// 构造方法,传入要导出的数据
public ExportExcel(String title, String[] rowName, List<ComplianceAlarm> dataList) {
this.dataList = dataList;
this.rowName = rowName;
this.title = title;
}


/*
* 导出数据
*/
public void export(String fileName,List<Integer> columnWidthList, HttpServletRequest request, HttpServletResponse response) throws Exception {
try {
HSSFWorkbook workbook = new HSSFWorkbook(); // 创建工作簿对象
HSSFSheet sheet = workbook.createSheet(title); // 创建工作表
HSSFPalette palette = workbook.getCustomPalette(); //wb HSSFWorkbook对象
//设置颜色
//标题
palette.setColorAtIndex((short)10, (byte) (0xff & 27), (byte) (0xff & 102), (byte) (0xff & 142));
//列名
palette.setColorAtIndex((short)11, (byte) (0xff & 243), (byte) (0xff & 243), (byte) (0xff & 243));
//偶数行
palette.setColorAtIndex((short)12, (byte) (0xff & 235), (byte) (0xff & 243), (byte) (0xff & 255));

//列宽设置
for(int i =0;i<columnWidthList.size();i++){
sheet.setColumnWidth(i, columnWidthList.get(i));  
}
//设置行高
sheet.setDefaultRowHeightInPoints(20);

// 产生表格标题行
HSSFRow rowm = sheet.createRow(0);
HSSFCell cellTiltle = rowm.createCell(0);


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值