WEB客户端数据导出为EXCEL(纯JAVA篇)

     此方法为纯java环境下服务端向客户端以EXCEL格式返回所需数据,此方法无框架限制即可在severlet下使用,也可在strus  action中使用,适用性广但是比较繁琐。

 

public class UseExcelAction extends BaseAction {

	private  IRecordInfoService  record;
	
	
	public String execute() throws Exception {
		HttpServletResponse response = (HttpServletResponse)ActionContext.getContext().get(org.apache.struts2.StrutsStatics.HTTP_RESPONSE);
		HttpServletRequest request = (HttpServletRequest)ActionContext.getContext().get(org.apache.struts2.StrutsStatics.HTTP_REQUEST);
		//获取数据
		//...这里获取个list或map数据集即可  Lst list
		//设置创建输出流,通过输出流将文件格式设置为Excel文件
		OutputStream os = null;
		try{
		os=response.getOutputStream();
		response.reset();
		response.setHeader("Content-disposition", "attachment; filename=useCount.xls");//设定输出文件头
        response.setContentType("application/vnd.ms-Excel");
		// 生成Excel文件
		ExcelReport excelreport=new ExcelReport();
                //设置表头
		String[] titleList={"序号","地市","营业厅","地址","登录情况","选号","增值业务","U惠站 ","手机","总计","有效订单"};
		excelreport.touseExcel("xls",titleList,list,os);
		
		//清空输出流
		System.setOut(new PrintStream(os));
		os.flush();
		}catch(Exception e){
			e.getStackTrace();
		}
		finally{
				os.close();
		}
	        //这里是ACTION所以返回none
		return this.NONE;
	}

	public IRecordInfoService getRecord() {
		return record;
	}

	public void setRecord(IRecordInfoService record) {
		this.record = record;
	}
	
	
	
}

 

public class ExcelReport {
 //导出操作记录  
   public void touseExcel(String sheetname,String[] titleList,List<OrgReportBo> list,OutputStream os){
	   WritableWorkbook book=null;
   try{
	//打开创建excel
	 book=Workbook.createWorkbook(os);
	// 创建工作表
	WritableSheet sheet=book.createSheet(sheetname,0);
	//创建单元格
	for(int i=0;i<titleList.length;i++){
		Label lable=new Label(i,0,titleList[i]);
		//添加标题单元格
		sheet.addCell(lable);
	}
	for(int i=0;i<list.size();i++){  //第i+1行
		Dto rp=(Dto)list.get(i);
                //这里将数据集中单条数据取出即可,然后循环复制
		String[] report={rp.getAsString("NUMBER"),
				rp.getAsString("REGION_NAME")
				,rp.getAsString("ORG_NAME"),rp.getAsString("ADDRESS")
				,rp.getAsString("MAIN"),rp.getAsString("MSISDN")
				,rp.getAsString("SPSJYY"),rp.getAsString("YOUHUI"),rp.getAsString("PHONE")
				,rp.getAsString("COUNT"),rp.getAsString("COUNTS")};
		for(int j=0;j<titleList.length;j++){ //第j列
		//添加数据单元格
		Label lable=new Label(j,i+1,report[j]);
		sheet.addCell(lable);
		}
	}
	//写入数据
	book.write();
	
	
   }catch(Exception e){
	   e.printStackTrace();
   
    }finally{
    	try {
			book.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    }
 }
  
}

 以上

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
网页数据导出Excel表格,是一种非常常见的操作,其可以实现将网页上的数据直接导出Excel表格中,以方便用户对数据进行分析、整理、存档等操作。这种方法比较简单、易用,且涉及到的技术也不算难,基本上所有的网站都可以实现这一功能。下面我们来详细讲述一下该功能的实现过程及其相关技术要点。 首先,网页数据导出Excel表格主要涉及到两方面的技术:一是服务器端与客户端之间的数据传输技术;二是将传输过来的数据处理成Excel格式的技术。 在客户端点击导出按钮后,会向服务器发起一个数据请求,服务器端会将需要导出数据数据库或其他数据源中查询出来,并通过一定的数据传输技术将数据传输给客户端。常用的数据传输协议有两种:一种是XMLHttpRequest(即AJAX)协议,它可以通过JavaScript代码实现异步传输数据,不需要页面的刷新或跳转,很适合于提高用户体验;另一种是常见的HTTP请求,它是一种同步的数据传输方式,需要通过页面的刷新或跳转来实现数据的传输,但它的编写和调试比异步传输方式简单许多。 在数据传输完成后,服务器端需要将传输过来的数据使用一定的技术处理,将数据处理成Excel格式。目前,常用的Excel处理技术有两种:一种是使用Microsoft Office COM技术来实现定制化的Excel报表,这种技术需要先安装Office软件包或使用web-based COM automation技术,然后利用JavaScript或其他脚本语言实现数据Excel表格之间的交互,并将数据填充到表格中;另一种是使用Apache POI项目来处理Excel表格,这是一个完全开源的Java库,可以直接在Java中使用,其优点是极其便捷且具有很高的可移植性。 总之,将网页数据导出Excel表格可以方便用户对数据进行分析与整理,给用户带来很大的便利。在实现这一功能时,我们需要注意选择合适的数据传输协议和Excel处理技术,并严格遵守各项安全规定以保障数据安全。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值