`
xihuan&java
  • 浏览: 162142 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

zk导出excel

    博客分类:
  • zk
阅读更多
我写这些的主要目的是方便以后查阅,当然也是为了和朋友们互相学习,如果各位有什么好的方法和建议请分享一下
row javabean
public class Row {
	private List<Column> columnList= new ArrayList();
	
	public List<Column> getColumnList() {
		return columnList;
	}

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

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

column javabean
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;
	}
	
}

sheet javabean
public class Sheet {

	private List<Row> rowList = new ArrayList();
	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);
	}
	
}

Excel后台类
public class Excel{
	
	public static void write(List<Sheet>sheetList,OutputStream os){
	    jxl.write.WritableWorkbook wwb;
	    jxl.write.WritableFont wf1=new jxl.write.WritableFont(WritableFont.ARIAL,20,WritableFont.BOLD,false,
	    		UnderlineStyle.DOUBLE_ACCOUNTING,jxl.format.Colour.BRIGHT_GREEN);
	    jxl.write.WritableCellFormat wff1=new jxl.write.WritableCellFormat(wf1);
		try {
//		    wff1.setBackground(jxl.format.Colour.VIOLET2);
//		    wff1.setBackground(jxl.format.Colour.VIOLET2);
			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();){
			    		Column column = rowIterator.next();
			    		ws.addCell(new jxl.write.Label(colunNum,rowNum,column.getColumnLabel(),wff1));
				    	colunNum++;
			    	}
		    		rowNum++;
			    }
			    i++;
			}
		    //写入Exel工作表
		    wwb.write();
		    //关闭Excel工作薄对象
		    wwb.close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

实现导出excel的方法,在前台加一个按钮调用onAdd2()方法
 public void onAdd2(ForwardEvent event) throws Exception{
		Excel excel=new Excel();
		if(listbox.getSelectedItem()==null){
			Messagebox.show("请选择要导出报表的内容!", "提示信息", Messagebox.OK, Messagebox.INFORMATION);
		}
		else{
		 Date   dat=new   Date();   
         //dat.setTime(dat.getTime());               
       SimpleDateFormat   sdf   =   new   SimpleDateFormat("yyyy-MM-dd");     
       String   timeStr   =   sdf.format(dat);  
       FileSystemView fsv = FileSystemView.getFileSystemView(); 
       fsv.getHomeDirectory();
		 File f=new File(fsv.getHomeDirectory()+"//"+timeStr+ ""+listbox.getSelectedItem().getLabel()+".xls");
		    Sheet sheet = new Sheet();
		    listbox.getSelectedItem().getValue();
		    System.out.println(listbox.getSelectedItem().getLabel());
		    sheet.setName(listbox.getSelectedItem().getLabel()+"的费用报表");   
		 	Set set = listbox.getSelectedItems();
		 	for(Iterator iter= set.iterator();iter.hasNext();)
		 	{
		 		Row row = new Row();
		 		Listitem listitem = (Listitem) iter.next();
		 		List columnList = new ArrayList();
			    for(int i = 0 ; i <listitem.getChildren().size();i++)
			    {
			    	Column column = new Column();
			    	column.setColumnLabel(((Listcell)listitem.getChildren().get(i)).getLabel());
			    	column.setColumnNum(i);
			    	columnList.add(column);
			    }
			    row.setColumnList(columnList);
			    sheet.appendRow(row);
		 	}
		    List list = new ArrayList();
		    list.add(sheet);
		    new Excel().write(list,new FileOutputStream(f));
		    Messagebox.show("导出excel成功", "提示信息", Messagebox.OK, Messagebox.INFORMATION);
		}
	}


//appendTitleRow
private Row appendTitleRow(Sheet sheet){
		Row row = new Row();
 		List columnList = new ArrayList();
	    for(int i = 0 ; i <exportTitles.length;i++)
	    {
	    	Column column = new Column();
	    	column.setColumnLabel(exportTitles[i]);
	    	column.setColumnNum(i);
	    	column.setType("title");
	    	row.appendColumn(column);
	    }
	    sheet.appendRow(row);
	    return row;
	}

分享到:
评论
2 楼 xihuan&java 2011-11-07  
天明破晓 写道
请博主再贴详细一些

不好意思,我没有比较完整代码了
1 楼 天明破晓 2011-10-28  
请博主再贴详细一些

相关推荐

    ireport5.6 导出excel,pdf

    总的来说,使用iReport 5.6在JBoss和ZK环境下导出Excel和PDF报表,需要对Java EE、JBoss、ZK、iReport以及报表设计和数据处理有深入的理解。通过精心设计和配置,可以创建出满足业务需求的复杂报表,并方便地导出到...

    ZK-AJAX学习笔记

    介绍如何使用ZK导出数据到Excel格式,虽然过程稍显复杂,但对数据处理和报告生成非常有用。 #### 11. ZK的Menu 学习Menu组件的使用,创建导航菜单,提高网站的可用性。 #### 12. ZK 3.0 RC新组件 - 转发功能 ...

    jasperreport excel报表打印

    ### jasperreport与Excel报表打印知识点 #### 一、JasperReports简介 JasperReports是一款开源的报表工具,主要用于创建复杂、美观的报表,并能够从各种数据源(如:数据库)获取数据,支持多种格式输出,包括PDF、...

    注册管理(zk基本运用)

    - **jxl.jar**: 用于处理Excel文件,与POI类似,可能用于数据导入导出。 - **hsqldb.jar**: 一个嵌入式的SQL数据库,可能用于存储临时数据或测试数据。 综上所述,这篇博客可能涵盖了Zookeeper的基础知识、如何在...

    zk spreadsheet3.9.1 在线电子表格

    - **兼容性**:与Excel格式兼容,用户可以导入和导出 `.xls` 和 `.xlsx` 文件,方便数据迁移和共享。 - **丰富的API**:提供JavaScript API,允许开发者自定义功能,如添加新的公式、设置样式或实现特定业务逻辑。...

    融合CAD面模型与Excel计算插件的储量估算方法.pdf

    这些公式的运用,需要结合实际地质情况,将CAD模型中的数据导出,并输入到Excel等电子表格软件中进行计算。 文中提到的Excel计算插件,是指通过VBA(Visual Basic for Applications)或其他编程语言开发的Excel附加...

    c# 导出execl xml html格式

    首先,让我们讨论如何在C#中导出数据到Excel格式。由于微软并没有提供直接支持非Office环境的API,开发者通常会使用第三方库,例如EPPlus。EPPlus是一个开源库,它允许你创建、读取和修改Excel 2007/2010/2013的xlsx...

    徕卡DNA03数字水准仪数据处理研究.pdf

    2. 数据输出格式化:在进行数字水准仪数据处理时,可以定制数据输出格式,导出的文件格式一般为TZK.frt。然后,将这些文件传输至DNA03水准仪,并在LEICAGeoOffice软件中进行数据交换管理。数据最终保存为ASCII码文本...

    GSM.rar_c++ 柱状图_钻孔_钻孔柱状图

    通过一个图形用户界面(GUI),用户能够轻松导入Excel格式的钻孔数据文件(ZK.xls)。导入数据后,软件将根据用户设定的参数自动生成钻孔柱状图,用户无需进行复杂的设置或编程操作。这一过程极大地缩短了从数据到...

    java-phonebook:示例电话簿 Web 应用程序

    在电话簿应用中,用户可能需要导入或导出Excel文件来批量管理联系人。JExcelAPI提供了与Excel电子表格交互的接口,可以读取现有数据,或者创建新的工作表并填充数据。 5. **ZK Framework**: ZK是一个用于构建富...

    Report Studio 用户指南.

    )**:这部分可能讲解了如何将报告数据导出到 Microsoft Excel 2007 并进行进一步的数据分析。 12. **'V+ Microsoft Excel 2007 w*b?}]4**:这部分可能介绍了如何利用 Excel 的高级功能来增强报告的交互性和数据分析...

    dynamia-reports:使DynamiaTools应用创建并显示用户报告和图表的模块

    初始特征使用JPSQL或本机SQL创建查询创建或使用当前数据库数据源使用过滤器在屏幕上显示报告将报告导出到CVS,Excel和PDF 将报告发送到电子邮件查看报告将报告嵌入其他应用程序与任何DynamiaTools模块集成为模块未来...

    ZKtime5.0考勤软件说明书

    - 编辑人员信息为Excel表格格式,并转换为CSV格式。 - 在考勤软件中选择“人员维护”,点击“导入”按钮。 - 导入完成后,可以在“人员维护”界面查看导入的信息。 - **人员信息上传:** - 在“人员维护”界面...

Global site tag (gtag.js) - Google Analytics