java Excel 导出
程序员文章站
2024-03-20 21:14:16
...
项目中新加的
public void createExcel(OutputStream os,List<TbReceiptDocument> docList)throws Exception{
WritableWorkbook wwb = Workbook.createWorkbook(os);
WritableSheet ws = wwb.createSheet("收文登记表", 0);
ws.mergeCells(0, 0, 5, 0);
WritableFont font1 = new WritableFont(WritableFont.TIMES, 16,
WritableFont.BOLD);
try{
WritableCellFormat format1 = new WritableCellFormat(font1);
format1.setAlignment(jxl.format.Alignment.CENTRE);
WritableCellFormat cellFormat = new WritableCellFormat();
cellFormat.setAlignment(jxl.format.Alignment.CENTRE);
cellFormat.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
cellFormat.setWrap(true);
// 文件字号 主办部室 文件标题 附件 接收列表 发文时间
//first row
Label l = new Label(0, 0, "收文登记表", format1);
ws.addCell(l);
// two row 标题
String[] titels={"收文序号", "收文日期", "文件字号", "来文单位", "文件标题", "公司领导指示" };
for(int i=0;i<titels.length;i++) {
l=new Label(i, 1, titels[i], cellFormat);
ws.addCell(l);
}
ws.setColumnView(0, 15);
ws.setColumnView(1, 20);
ws.setColumnView(2, 20);
ws.setColumnView(3, 20);
ws.setColumnView(4, 20);
ws.setColumnView(5, 20);
int j=0;
for(TbReceiptDocument docBean:docList){
Label labelA = null;
if(docBean.getSequenceNo()!=null){
labelA = new Label(0, j + 2,docBean.getSequenceNo().toString());
}
labelA.setCellFormat(cellFormat);
ws.addCell(labelA);
labelA = new Label(1, j + 2,docBean.getReceiptDtAsStr());
labelA.setCellFormat(cellFormat);
ws.addCell(labelA);
labelA = new Label(2, j + 2,docBean.getFileNo());
labelA.setCellFormat(cellFormat);
ws.addCell(labelA);
labelA = new Label(3, j + 2,docBean.getReceiptDeptIdStr());
labelA.setCellFormat(cellFormat);
ws.addCell(labelA);
labelA = new Label(4, j + 2,docBean.getFileTitle());
labelA.setCellFormat(cellFormat);
ws.addCell(labelA);
List<TbReceiptApproval> fileList=docBean.getComLeaderComments();
StringBuffer fileTile=new StringBuffer();
for(TbReceiptApproval ra:fileList){
fileTile.append(ra.getApprovalComment());
}
labelA = new Label(5, j + 2,fileTile.toString());
labelA.setCellFormat(cellFormat);
ws.addCell(labelA);
j++;
}
// 写入工作表
wwb.write();
wwb.close();
}catch(Exception e){
e.printStackTrace();
}
}
采用jsp调用:
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.io.OutputStream" %>
<%@ page import="java.net.URLEncoder" %>
<%@ page import="com.timeson.oa.receiptdocument.web.ReceiptDocAction"%>
<html>
<body>
<%
response.reset();
response.setContentType("application/msexcel");
// response.setHeader("content-disposition", "attachment;filename=untitled.xls");//(1)
response.setHeader("Content-Disposition", "inline;filename=收文登记表.XLS");
// response.setHeader("Content-disposition","inline;filename=untitled.xls");//定义文件名(2)
OutputStream os = response.getOutputStream();
ReceiptDocAction doc = new ReceiptDocAction();
try
{
List list = (List) request.getAttribute("docList");
doc.createExcel(os, list);//把列表信息导入Excel
} catch(Exception e)
{
e.printStackTrace();
}
os.flush();
os.close();
out.clear();//(3)
out = pageContext.pushBody();//(4)
%>
</body>
</html>