标签:
采用的是poi技术
框架式 ssh 使用的是struts1
public void outExcel(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
你程序需要调用的东西写在这里
try {
// 第一步,创建一个webbook,对应一个Excel文件
HSSFWorkbook wb = new HSSFWorkbook();
// 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
HSSFSheet sheet = wb.createSheet("名字");
// 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
HSSFRow row = sheet.createRow((int) 0);
// 第四步,创建单元格,并设置值表头 设置表头居中
HSSFCellStyle style = wb.createCellStyle(); style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
// 创建一个居中格式
HSSFCell cell = row.createCell((short) 0);
cell.setCellValue("其他");
cell.setCellStyle(style);
cell = row.createCell((short) 1);
cell.setCellValue("其他取");
你程序需要调用的东西写在这里
for (int i = 0; i < list1.size(); i++) {
for (int p = 0; p < list.size(); p++) {
if(list1.get(i).equals(list.get(p).getSsqx())){
TraceLxr sf=new TraceLxr();
sf.setSsqx(list.get(p).getSsqx());
sf.setFg(list.get(p).getFg());
newlist.add(sf);
}
}
}
for (int k1 = 0; k1 < newlist.size(); k1++) {
row = sheet.createRow((int) k1 + 1);
TraceLxr bgMultiLevel = (TraceLxr) newlist.get(k1);
row.createCell((short) 0).setCellValue(bgMultiLevel.getSsqx());
row.createCell((short) 1).setCellValue(bgMultiLevel.getFg());
if(k1!=0){
if(newlist.get(k1-1).getSsqx().equals(newlist.get(k1).getSsqx())){
CellRangeAddress cra=new CellRangeAddress(k1, 1+k1, 0, 0);
//在sheet里增加合并单元格
sheet.addMergedRegion(cra);
}
}
}
response.reset();
response.setContentType("application/vnd.ms-excel;charset=utf-8");
response.setHeader("Content-Disposition", "attachment;filename=" + new String( ("exportExcel".toString() + ".xls").getBytes(), "iso-8859-1"));
OutputStream os = response.getOutputStream();
wb.write(os); os.close();
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
到这里动态合并就好了 里面调用的方法根据自己的来写
标签:
原文地址:http://www.cnblogs.com/liuy1/p/5672898.html