在servlet中的list在excel输出!!

本文介绍了一种利用Java POI库创建Excel文档的方法。详细展示了如何设置单元格样式、字体及边框,并通过示例代码演示了如何填充数据、设置列宽等操作。

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

[size=x-large]/*要加入poi包才能成功*/


/***************生成excel文档***************************/

HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet();

HSSFCellStyle mainstyle = workbook.createCellStyle();
HSSFCellStyle titlestyle = workbook.createCellStyle();
HSSFCellStyle cellstyle = workbook.createCellStyle();


HSSFFont mainfont = workbook.createFont();
HSSFFont titlefont = workbook.createFont();
HSSFFont cellfont = workbook.createFont();

mainfont.setFontHeightInPoints((short) 12);
mainfont.setFontName("隶书");
titlefont.setFontHeightInPoints((short) 12);
titlefont.setFontName("华文新魏");
cellfont.setFontHeightInPoints((short) 9);
cellfont.setFontName("宋体");

workbook.setSheetName(0, "会议室信息",HSSFWorkbook.ENCODING_UTF_16);//设置生成excel文件中新sheet的名称
//设置execl显示样式
mainstyle.setFont(mainfont);

titlestyle.setFont(titlefont);
titlestyle.setBorderTop(HSSFCellStyle.BORDER_THIN);
titlestyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
titlestyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
titlestyle.setBorderRight(HSSFCellStyle.BORDER_THIN);

cellstyle.setFont(cellfont);

cellstyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
cellstyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
cellstyle.setBorderRight(HSSFCellStyle.BORDER_THIN);
cellstyle.setWrapText(true);
cellstyle.setFont(cellfont);
mainstyle.setFont(mainfont);

HSSFRow row = null;
HSSFCell cell = null;




int rownum = 3 + userId.size();
int cellnum = 3;



for (short i = 0; i < rownum; i++){
row = sheet.createRow(i);

for (short j = 0; j < cellnum ; j++){
cell = row.createCell(j);

cell.setEncoding(HSSFCell.ENCODING_UTF_16);//设置行中每一列项的编码方式
if(i == 2) cell.setCellStyle(titlestyle);
if( i > 2) cell.setCellStyle(cellstyle);
sheet.setColumnWidth(j,(short)(3000*2));
}
}
//设置制表时间题行

cell = sheet.getRow(0).getCell((short)(cellnum/2));
cell.setCellValue( "员工注册信息");
cell.setCellStyle(mainstyle);

cell = sheet.getRow(1).getCell((short)(cellnum/2-1));
cell.setCellValue("" );
String script ="制表时间:" + DateFormat.getDateInstance().format( new Date()) ;

cell = sheet.getRow(1).getCell((short)(cellnum-3));
cell.setCellValue(script);
//设置标题行

row = sheet.getRow(2);
row.getCell((short)0).setCellValue("员工代号");
row.getCell((short)1).setCellValue("注册密码");
row.getCell((short)2).setCellValue("员工姓名");
//循环输出信息列表(全部信息,链表中的信息)
for(int k=0; k< userId.size();k++){

row = sheet.getRow(3+k);
row.getCell((short)0).setCellValue((String)userId.get(k));
row.getCell((short)1).setCellValue((String)userPwd.get(k));

}


javax.servlet.ServletOutputStream servletoutputstream = response.getOutputStream();


response.setHeader("Content-disposition","attachment; filename=" + new String(("员工信息表.xls").getBytes("gb2312"),"iso8859-1"));
response.setDateHeader("Expires", 0);
response.setContentType("application/vnd.ms-excel;charset=GBK");

workbook.write(servletoutputstream);
servletoutputstream.flush();
}[/size]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值