zoukankan      html  css  js  c++  java
  • 实习任务——导出excel

    将grid组件中显示的数据导出为excel文件

    首先使用sql语句,将数据库中的信息查出来,然后根据查询条件进行筛选过滤,将得到的信息进行解析(因为在数据库中保存的是代码,需要解析为文字),在grid组件中表示出来。

    然后对于这些信息需要一个导出excel功能,导出为excel表,显示所有的信息。

    首先需要一个导出excel的方法

    public class LicenseEnableExport {
    	/**
    	 * 生成sheet
    	 * 
    	 */
    		private String filename;
    
    		private String sheetname;
    
    		public LicenseEnableExport(Grid2 grid, String filename, String sheetname) {
    			this.filename = filename;
    			this.sheetname = sheetname;
    			doExport(grid);
    		}
    
    		public void doExport(Grid2 grid) {
    			final BatchExportor exportor = new BatchExportor(new GridDataIterator(grid));
    			exportor.setToSingleFile(true);
    
    			Display.getCurrent().exportFile(filename, "application/vnd.ms-excel", 0, new Exporter() {
    				public void run(OutputStream outputStream) throws IOException {
    					try {
    						exportor.Export(outputStream);
    					} catch (Exception e) {
    						e.printStackTrace();
    					}finally{
    						outputStream.close();
    					}
    				}
    			});
    		}
    
    		private class GridDataIterator implements GridIterator {
    
    			private final int pageCount;
    			private int page;
    			private Grid2 grid;
    
    			public GridDataIterator(Grid2 grid2) {
    				this.pageCount = 1;
    				this.page = 0;
    				this.grid = grid2;
    			}
    
    			public GridData getGridData() {
    				return grid.getModel().toGridData();
    			}
    
    			public String getTitle() {
    				return sheetname;
    			}
    
    			public boolean next() throws ExcelException {
    
    				this.page++;
    				return this.page <= this.pageCount;
    			}
    		}
    
    	
    }
    
    

    其次需要一个按钮监听,调用导出excel的方法,同时说明输出的excel文件名和输出的excel文件工作表名。
    以下为代码

    	/**
    	 * 导出excel按钮监听
    	 * @param mouseEvent
    	 */
    	protected void on_btn_7_Click(MouseEvent mouseEvent) {
    		// TODO Auto-generated method stub
    		
    			// 初始化grid2中的数据
    			initGrid1();
    			setData1(xmlist);
    			controls.cmp_5.layout();
    
    
    		Composite gridComp = controls.cmp_5;
    	
    		if (gridComp.getChildren().length <= 0) {
    			MessageDialog.alert("提示", "无导出数据");
    			return;
    		}
    		Grid2 epu = (Grid2) gridComp.getChildren()[0];
    		LicenseEnableExport exportUtil = new LicenseEnableExport(epu, "开采底数管理列表.xls", "开采底数管理列表");
    		exportUtil.doExport(epu);
    		
    	}
    
  • 相关阅读:
    SQL创建索引
    SQLServer最耗资源时间的SQL语句
    C# Linq删除父级的同时删除子级
    C# 根据类名创建类的实例对象
    C#利用反射实现两个类的对象之间相同属性的值的复制
    linq时间筛选以及list时间筛选
    为什么watch机制不是银弹?
    我们的前端模版引擎更新总结
    小矮人Javascript模块加载器
    Javascript模版引擎简介
  • 原文地址:https://www.cnblogs.com/mingey/p/6391062.html
Copyright © 2011-2022 走看看