`
lpm528
  • 浏览: 84135 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

将数据导出到excel

    博客分类:
  • JSP
 
阅读更多

前台jsp调用代码:

	function outexe(){
			queryForm.action = "<%=basepath%>/lpm/lpm-grpinfoExl.action";
			queryForm.submit();
		}

 action代码:

/*
	 * 将数据导出到excel
	 */
	@Action(value="lpm-grpinfoExl")
	public String lpmExl()throws Exception
	{
		LpmServiceInter ll = ServiceFactory.getLpmService();
	    List result=ll.query(lpmdto.getHql());
		
		//写第一行标题行 
		String fileFolder = com.utils.FileUtil.createExlFile(getHttpRequest());//建文件夹
		File objFile = new File(fileFolder + File.separator + "公司信息.csv");//建文件
		String title = "公司编号,公司名称,公司状态,联系电话,注册时间";
		com.utils.FileUtil.appendDataWriter(objFile, title + "\n");
		
		//插入数据
		StringBuffer data = new StringBuffer();
		int rows = 0;
		for(java.util.Iterator i=result.iterator();i.hasNext();){
			GrpInfo g=(GrpInfo) i.next();
			String s=null;
			String s2=null;
			data.append("	" + g.getGrpCode()).append(",");
			data.append("	" + g.getGrpName()).append(",");
			if(g.getStatus()==1){
				s="有效";
			}else{
				s="已经撤销";
			}
			data.append("	" + s).append(",");
			data.append("	" + g.getGrpTelNo()).append(",");
			if(g.getRegtime()!=null){
				s2=DateUtil.datetoStr2(g.getRegtime());
			}else{
				s2="";
			}
			data.append("	" +s2);
			data.append("\n");
			rows ++;
			
			//当StringBuffer超过1千行数据时就先往文件插入那1千行数据并清空缓存数据
			if(rows > 1000){
				com.utils.FileUtil.appendDataWriter(objFile, data.toString());
				data.delete(0, data.length());
			}
		}
		com.utils.FileUtil.appendDataWriter(objFile, data.toString());
		//输出到excel
		com.utils.FileUtil.outExl(objFile, getHttpResponse());
		return null;
	}

 自定义util工具类代码:

	public static String createExlFile(HttpServletRequest request){
		String parentPath = request.getSession().getServletContext().getRealPath("/exceltemplate/temp/" + (new java.text.SimpleDateFormat("yyyyMMdd")).format(new Date()));
		//存tjfx目录
		String fileFolder = parentPath + File.separator + "tjfx";
		new File(fileFolder).mkdirs();
		//删除tjfx里的临时文件	
		delete(new File(fileFolder));
		return fileFolder;
	}

 

	//追加数据
	public static void appendDataWriter(File objFile, String data) {
		//if(!objFile.exists())
		FileWriter objFileWriter = null;
		BufferedWriter bfWriter = null;
		try {
			objFileWriter = new FileWriter(objFile, true);//true表示以追加的方式进行追加数据到文件
			bfWriter = new BufferedWriter(objFileWriter);//将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入  
			bfWriter.write(data);//写数据行
			//bfWriter.newLine();//写入一个行分隔符。
		} catch (Exception e) {
			//System.out.println("追加流发生错误:" + e.toString());  
			e.printStackTrace();
		} finally {
			try {
				bfWriter.flush();
				bfWriter.close();
				objFileWriter.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

 

public static void outExl(File objFile, HttpServletResponse response)
	throws Exception {
		ServletOutputStream os = null;
		InputStream in = null;
		try {
			long l = objFile.length(); //文件长度
			in = new FileInputStream(objFile);
			os = response.getOutputStream();//获取输出流
			if (in != null) {
				response.reset();
				response.setCharacterEncoding("gbk");
				response.setContentType("application/x-msdownload"); //
				String title = objFile.getName();
				title = title.substring(0,title.lastIndexOf("."));
				String sf = "attachment; filename="
						+ new String(title.getBytes(), "iso-8859-1") + ".csv"; //
				response.setHeader("Content-Disposition", sf); // 以上输出文件元信息
				response.setContentLength((int) l); //设置输入文件长度
				byte[] b = new byte[2048];
				int len = 0;
				while ((len = in.read(b)) > 0) {
					os.write(b, 0, len); //向浏览器输出
				}
				
			}
			os.flush();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if(in != null)
			in.close(); //关闭文件输入流
			if(os != null)
			os.close();
		}
	}

 

 

分享到:
评论

相关推荐

    java 将数据导出到Excel中

    在Java开发中,将数据导出到Excel是一种常见的需求,特别是在数据分析、报表生成或数据交换等场景下。Excel因其易用性和丰富的格式设置能力,成为处理结构化数据的理想选择。本篇文章将深入探讨如何利用Java实现这一...

    C# 将数据导出到Excel汇总

    本文将基于给定的文件信息,深入探讨C#中将数据导出到Excel的几种方法,包括在ASP.NET环境中导出Excel的具体步骤。 #### ASP.NET中导出Excel的方法概览 在ASP.NET中导出数据到Excel主要分为两种基本策略:一是将...

    将数据导出到Excel

    在IT行业中,将数据导出到Excel是一种常见的操作,尤其在数据分析、报表生成以及数据共享等领域。Excel作为Microsoft Office套件的一部分,因其强大的表格处理功能和丰富的数据分析工具,深受用户喜爱。下面,我们将...

    C# 将数据导出到excel模板 自定义字段

    本主题聚焦于如何利用C#将数据导出到Excel模板,并自定义字段,这是一个常见的需求,尤其是在数据分析、报告生成和数据共享的场景中。 在C#中,我们可以利用各种库来操作Excel,如EPPlus、NPOI或Microsoft.Office....

    C#将数据导出到Excel汇总

    ### C#将数据导出到Excel汇总:ASP.NET中的实现方式 #### 一、ASP.NET中导出Excel的方法概述 在ASP.NET应用中,导出数据到Excel是一种常见的需求,通常用于报表展示或数据下载等功能。根据给定的文档描述,我们...

    利用不同的服务器控件将数据导出到Excel文件

    利用不同的服务器控件将DataTable数据导出到Excel文件,包括: 利用DataGrid将数据导出到Excel文件; 利用HtmlTable将数据导出到Excel文件; 利用Literal将数据导出到Excel文件; 将本页内容导出到Excel文件。 适用于...

    C#创建Excel文件并将数据导出到Excel文件

    本话题主要聚焦于如何利用C#将数据导出到Excel文件,以实现数据的高效管理和共享。 首先,我们需要知道C#中创建Excel文件最常用的是使用第三方库,例如NPOI、EPPlus和闭源的Microsoft.Office.Interop.Excel。NPOI是...

    delphi高效率导出数据到excel

    在这篇文章中,我们将介绍如何使用 Delphi 高效率地将数据导出到 Excel 中。 Delphi 中的 Excel 操作 在 Delphi 中,我们可以使用多种方式来操作 Excel,例如使用 OLE 自动化、ADO、DBGridEh 等。其中,使用 OLE ...

    用wpf写的一个导出excel的例子,

    本示例涉及的知识点主要集中在如何利用WPF技术来实现数据的导出功能,特别是将数据导出到Excel文件中。下面我们将详细探讨这一主题。 1. **WPF基础**: - WPF是基于XAML(Extensible Application Markup Language...

    vs2005导出数据导入Excel表格

    本示例涉及到的是使用VS2005进行数据的导出操作,目标是将数据导出到Excel表格中,这对于数据分析、报表生成和数据共享等场景非常实用。 首先,要实现这一功能,你需要了解以下关键知识点: 1. **Microsoft Office...

    如何将VB中的数据导出excel,word中去

    7. 数据导出到其他格式:除了将数据导出到Excel和Word中,我们还可以将数据导出到其他格式,例如CSV、TXT、PDF等等。在VB中,我们可以使用不同的对象和方法来实现数据导出到不同格式。 将VB中的数据导出到Excel和...

    将datagrid数据导出到excel或者word

    将datagrid数据导出到excel或者word 本文主要讲解如何将DataGridView控件中的数据导出到Excel或者Word文档中。 下面是相关的知识点: 1. ASP.NET 中的数据导出:在 ASP.NET 中,可以使用 Response 对象来控制...

    C#大量数据导出到Excel自动分页导出

    C#大量数据导出到Excel,超过65536行时自动分页导出

    序开发用到将数据导出至Excel

    总之,将数据导出到Excel是软件开发中的常见任务,通过使用Excel Interop库,开发者可以创建自定义报告和导出功能。然而,为了提高性能和降低依赖性,可以考虑使用替代方案,如CSV导出或专门的Excel处理库。在编写这...

    将simulink示波器数据导出到excel表格教程

    在MATLAB Simulink环境中,将示波器数据导出到Excel表格是一项常见的需求,这有助于数据的存储、分析和进一步处理。以下是一份详细的步骤教程: 首先,我们需要准备一个Simulink模型,在模型中添加必要的组件。核心...

    SQL 导入导出Excel数据的语句

    如果 Excel 文件不存在,可以使用 BCP 命令将数据导出到类 Excel 文件中。下面是一个基本的示例: ```sql EXEC master..xp_cmdshell 'bcp 数据库名.dbo.表名 out "c:\test.xls" /c -/S"服务器名" /U"用户名" -P...

    将数据导出到excel中

    在"DatasToExcel"这个项目中,很可能是使用了上述的一种或多种方法来实现数据导出。具体步骤可能包括以下几步: - 首先,连接到数据源,这可能是数据库、CSV文件或其他数据存储。 - 然后,查询或提取需要的数据。 -...

Global site tag (gtag.js) - Google Analytics