我写这些的主要目的是方便以后查阅,当然也是为了和朋友们互相学习,如果各位有什么好的方法和建议请分享一下
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;
}
分享到:
相关推荐
使用的是jboss+zk, 需要自己配置jboss, 只有一些简单代码。
一款好用的zookeeper配置内容导入导出工具,适用平台是windows,但是也可以修改run.bat为shell脚本,适合linux。 带图形界面,修改config中的config.xml,添加需要管理的zookeeper地址信息,同时可以定义两个用户...
zk web框架 zk web框架 zk web框架 zk web框架 zk web框架 zk web框架 zk web框架 zk web框架 zk web框架 zk web框架 zk web框架 zk web框架 zk web框架 zk web框架 zk web框架
zk后台api很全的,对于学习ZK很有用的。
zk-6.5.0.zip ZK 6.5.0 Sep 12, 2012 * Features ZK-447: The file upload allows users to drag and drop local files (HTML5) ZK-1241: ZK Client Widget support swipe event for tablet/mobile device ZK-...
ZK开发手册 ZK开发手册 ZK开发手册 ZK开发手册 ZK开发手册
ZK 8.0.0端参考 ZK 8.0.0组件开发的必需品 ZK 8.0.0组件引用 ZK 8.0.0配置参考 ZK 8.0.0开发人员的参考 ZK 8.0.0风格定制指南 ZK 8.0.0 ZUML参考 zk-mvvm-book
最新版 ZK SRC最新版 ZK SRC最新版 ZK SRC最新版 ZK SRC最新版 ZK SRC最新版 ZK SRC最新版 ZK SRC最新版 ZK SRC最新版 ZK SRC
ZK包括一个基于AJAX事件驱动的引擎(engine),一套丰富的XUL和XHTML,以及一种被称为ZUML(ZK User Interface Markup Language,ZK用户界面标记语言)的标记语言。 有了ZK,您可以利用XUL和XHTML的丰富特性来呈现您的...
Librerias ZK 32 Bits Windows
最新的zk核心jar用到zk的可以下载很实用的东西
zk的chm版的api英文帮助文档. 本人自己制作的。 zk是台湾的一个纯ajax框架。
ZK 5.0.5 Component Reference ZK 5.0.5 Configuration Reference ZK 5.0.5 Style Guide ZK 5.0.5 ZUML Reference
ZK资料学习zk框架的助手,带你步入zk的殿堂。。。。。
ZK4500、中控指纹仪、SDK开发包带各种语言的demo
zk从版本3.4.9升级到3.5.5详细笔记文档总结
ZK Eclipse插件 解压至文件夹,如D:\Program Files\MyEclipse 8.5\zkstudio 在Eclipse安装目录下的dropins目录添加link文件如,zk.link,文件内容如下: path=D:\\Program Files\\MyEclipse 8.5\\zkstudio
zk studion plugins zk studion plugins
zk项目搭建文档,用于zk项目的mvvm模式的 开发 项目。
智科ZK880变频器说明书