zk实现导出Excel报表

package com.bailin.framework.util.excel;

import java.util.ArrayList;

import java.util.List;

/**  * 行  *  * @author cj  *  */ public class Row {

private List<Column> columnList = new ArrayList<Column>();  private String columnName;

public List<Column> getColumnList() {   return columnList;  }

public void setColumnList(List<Column> columnList) {   this.columnList = columnList;  }

public void appendColumn(Column column) {   columnList.add(column);  }

public String getColumnName() {   return columnName;  }

public void setColumnName(String columnName) {   this.columnName = columnName;  }

}

package com.bailin.framework.util.excel;

/**  * 列  * @author cj  *  */

public class Column {

private int columnNum;

private String columnLabel;

public int getColumnNum() {

return columnNum;  }

public void setColumnNum(int columnNum) {   this.columnNum = columnNum;  }

public String getColumnLabel() {   return columnLabel;  }

public void setColumnLabel(String columnLabel) {   this.columnLabel = columnLabel;  }

}

package com.bailin.framework.util.excel;

import java.util.ArrayList; import java.util.List;

/**  * 页  * @author cj  *  */

public class Sheet {

public Sheet(){

  }

public Sheet(List<Row> listRow,String name){

this.rowList = listRow;    this.name = name;

}   private List<Row> rowList = new ArrayList<Row>();

private String name;

public List<Row> getRowList() {

return rowList;       }

public void setRowList(List<Row> rowList) {

this.rowList = rowList;       }

public String getName() {

return name;       }

public void setName(String name) {

this.name = name;       }

public void appendRow(Row row){

rowList.add(row);       }

}

package com.bailin.framework.util.excel;

import java.io.File; import java.util.ArrayList; import java.util.List;

import javax.swing.JFileChooser;

import org.zkoss.zul.Listbox; import org.zkoss.zul.Listhead; import org.zkoss.zul.Listheader;

/**  * 添加头部  *  * @author cj  *  */ public class ExportExcel {  /**   * 设置头部   * @param listbox 页面listBox   * @return 一行   */  public static Row addpendtitle(Listbox listbox) {   Row row = new Row(); //行   List<Column> columnlist = new ArrayList<Column>();//保存所有列   Listhead s = listbox.getListhead(); //获取头部   List<Listheader> j = s.getChildren();//获取到头部子节点   for (int i = 0; i < j.size(); i++) { //遍历列    Column column = new Column(); //列    column.setColumnLabel(j.get(i).getLabel());    column.setColumnNum(i);    columnlist.add(column);// 添加到列   }   row.setColumnList(columnlist);   row.setColumnName("表头");   return row;  }

/**   * 弹出选择文件保存位置   * @return 文件保存位置   */  public static String filename(){   String fileName = "d://导出Excel"; //  JFileChooser dialog = new JFileChooser(); //  dialog.setCurrentDirectory(new File("e://"));//设置默认打开路径 //  dialog.setDialogTitle("将报表存放于");  //  dialog.setFileSelectionMode(JFileChooser.FILES_ONLY); //  dialog.setDialogType(JFileChooser.SAVE_DIALOG); //  int result = dialog.showSaveDialog(dialog); //  if(result == JFileChooser.APPROVE_OPTION){ //   File file = dialog.getSelectedFile(); //   fileName = file.getAbsolutePath(); //得到文件全名  //  }   return fileName;  } }

package com.bailin.framework.util.excel;

import java.io.File; import java.io.FileOutputStream; import java.util.Iterator; import java.util.List;

import org.zkoss.zul.Filedownload;

import jxl.Workbook; import jxl.format.UnderlineStyle; import jxl.write.WritableFont; /**  * 输出excel格式  * @author cj  *  */ public class Excel {  public static boolean write(List<Sheet>sheetList,String fileName,int width){    jxl.write.WritableWorkbook wwb;          jxl.write.WritableCellFormat wff1=new jxl.write.WritableCellFormat();         try {           FileOutputStream os = new FileOutputStream(fileName+".xls"); //文件输出位置          wff1.setAlignment(jxl.format.Alignment.CENTRE); //设置单元格剧中             wwb = Workbook.createWorkbook(os);              int i = 0;              for(Iterator<Sheet>itr = sheetList.iterator();itr.hasNext();){                  Sheet sheet = itr.next();                  int rowNum =0;                  jxl.write.WritableSheet ws = wwb.createSheet(sheet.getName(),i);                 for(Iterator<Row>sheetItr = sheet.getRowList().iterator();sheetItr.hasNext();){                      Row row = sheetItr.next();                      int colunNum = 0;                      for(Iterator<Column>rowIterator=row.getColumnList().iterator();rowIterator.hasNext();){                       ws.setColumnView(colunNum, width);// 设置第列宽                         Column column = rowIterator.next();                         if(null != row.getColumnName() && row.getColumnName().equals("表头")){                          jxl.write.WritableFont wf2=new jxl.write.WritableFont(WritableFont.ARIAL,10,WritableFont.BOLD,false,                                      UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.BLACK); // 设置字体样式                           jxl.write.WritableCellFormat wf1=new jxl.write.WritableCellFormat(wf2);                          wf1.setAlignment(jxl.format.Alignment.CENTRE); //设置单元格剧中                          ws.addCell(new jxl.write.Label(colunNum,rowNum,column.getColumnLabel(),wf1));                          }else{                          ws.addCell(new jxl.write.Label(colunNum,rowNum,column.getColumnLabel(),wff1));                          }                          colunNum++;                      }                      rowNum++;                  }                  i++;              }              try {     wwb.write();      wwb.close();     os.close();     File file = new File(fileName+".xls");      Filedownload.save(file, "application/vnd.ms-excel");     return true;    } catch (Exception e) {     e.printStackTrace();     return false;    }          } catch (Exception e) {             e.printStackTrace();              return false;         }      }

}

package com.bailin.framework.util.excel;

import java.io.File; import java.util.ArrayList;

import javax.swing.filechooser.FileFilter; /**  * 过滤文件  * @author cj  *  */ public class TextFileFilter extends FileFilter {  private ArrayList<String> extensions = new ArrayList<String>();  private ArrayList<String> descriptions = new ArrayList<String>();    public TextFileFilter(){   super();  }    public TextFileFilter(String extension, String description) {   super();   this.extensions.add(extension);   this.descriptions.add(description);  }    @Override  public boolean accept(File pathname) {   if (pathname != null) {    if (pathname.isDirectory()) {     return true;    }    String extension = getExtension(pathname);    for(int i=0; i<extensions.size(); i++){     if(extensions.get(i).toLowerCase().endsWith(extension.toLowerCase())){      return true;     }    }   }   return false;  }

private String getExtension(File pathname) {   if (pathname != null) {    String filename = pathname.getName();    int i = filename.lastIndexOf(‘.‘);    if (i > 0 && i < filename.length() - 1) {     return filename.substring(i).toLowerCase();    }   }   return null;  }

@Override  public String getDescription() {   return descriptions.get(descriptions.size()-1);  } }

时间: 2024-10-28 15:02:00

zk实现导出Excel报表的相关文章

从数据库中导出excel报表

通常需要将后台数据库中的数据集或者是其他列表等导出excel 报表,这里主要引用了Apose.cells dll 类库, (1)直接上主要代码: protected void txtExport_Click(object sender, EventArgs e)         { try             { // 获取测试商品报表 IList<ProductEntity> pList = ProductBLL.getProductList(); // 导出到Excel中 Workbo

Atitit.导出excel报表的设计与实现java&#160;.net&#160;php&#160;总结

Atitit.导出excel报表的设计与实现java .net php 总结 1. 导出报表 表格的设计要素1 1.1. 支持通用list<Map>转换1 1.2. 对于空列是否输出1 1.3. 支持http web直接输出1 2. Api2 2.1. private static void toExcel(String titles, String filds,List<Map> list,OutputStream outStrm)2 2.2. Response版 toExcel

poi导出Excel报表多表头双层表头、合并单元格

效果图: controller层方法: /**     *      * 导出Excel报表     * @param request     * @return     *      */    @RequestMapping("/export")    @ResponseBody    public void export(HttpServletRequest request,            HttpServletResponse response, String year

Java使用POI实现数据导出excel报表

在上篇文章中,我们简单介绍了java读取word,excel和pdf文档内容 ,但在实际开发中,我们用到最多的是把数据库中数据导出excel报表形式.不仅仅简单的读取office中的数据.尤其是在生产管理或者财务系统中用的非常普遍,因为这些系统经常要做一些报表打印的工作.而数据导出的格式一般是EXCEL或者PDF .所以今天我们来简单看一下利用Apache  POI实现数据库中数据导出excel报表.在java中有很多实现数据导出excel报表的第三方jar包.但在比较了一下感觉还是POI相对来

java导出excel报表

1.java导出excel报表: package cn.jcenterhome.util; import java.io.OutputStream;import java.util.List;import java.util.Map;import javax.servlet.http.HttpServletResponse;import jxl.Workbook;import jxl.format.Alignment;import jxl.format.Border;import jxl.for

用jxl导出excel报表

1.在项目中加入jxl.jar包 2.页面是一个from表单,也可以是一个a标签...,示例如下 1 <s:form action="claimVoucherStatistics_createDetailExcel.action" name="queryForm"> 2 <label for="time">年份:</label> 3 <s:property value="year"/&

Java实现POI导出Excel报表功能

在公司的很多业务中需要做成报表的形式,在市场有很多开源的Java框架,例如POI.JXL等,下面我们结合SpringMVC框架,来实现报表导出功能 首先在项目的lib目录下面加入poi-3.7.jar 核心工具类: import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputSt

Ajax调用NPOI导出Excel报表

$("#btnExcel").click(function () {                $.ajax({                    url: "../ashx/Report.ashx",                    type: "post",                    dataType: "text",                    data: { RequestType:

jsp(servlet)使用poi导出excel数据文件

网站通过Excel导出数据已经成为各种网站的一个基本功能,下面就详细介绍下如何使用poi.jar方式来导出excel文件.具体步骤如下: 1.创建一个网站,下面我创建一个叫test的网站,然后将poi的jar包放入lib文件夹.我这里是下载链接poi-2.5.1.jar. 结构目录如下: 2.然后我们可以创建一个用来访问的jsp界面(主要是提交到servlet,可有可无) 代码如下: <%@ page language="java" import="java.util.