`
jzkangta
  • 浏览: 160455 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Apache POI生成Excel

    博客分类:
  • JAVA
阅读更多
public InputStream getInputStream()
	{
		HSSFWorkbook wb = new HSSFWorkbook();
		HSSFSheet sheet = wb.createSheet("sheet1");

		HSSFRow row = sheet.createRow(0);

		HSSFCell cell = row.createCell((short) 0);
		cell.setEncoding(HSSFCell.ENCODING_UTF_16);
		cell.setCellValue("序号");

		cell = row.createCell((short) 1);
		cell.setEncoding(HSSFCell.ENCODING_UTF_16);
		cell.setCellValue("姓");

		cell = row.createCell((short) 2);
		cell.setEncoding(HSSFCell.ENCODING_UTF_16);
		cell.setCellValue("名");

		cell = row.createCell((short) 3);
		cell.setEncoding(HSSFCell.ENCODING_UTF_16);
		cell.setCellValue("年龄");

		List<User> list = this.findAll();

		for (int i = 0; i < list.size(); ++i)
		{
			User user = list.get(i);

			row = sheet.createRow(i + 1);

			cell = row.createCell((short) 0);
			cell.setEncoding(HSSFCell.ENCODING_UTF_16);
			cell.setCellValue(i + 1);

			cell = row.createCell((short) 1);
			cell.setEncoding(HSSFCell.ENCODING_UTF_16);
			cell.setCellValue(user.getFirstname());

			cell = row.createCell((short) 2);
			cell.setEncoding(HSSFCell.ENCODING_UTF_16);
			cell.setCellValue(user.getLastname());

			cell = row.createCell((short) 3);
			cell.setEncoding(HSSFCell.ENCODING_UTF_16);
			cell.setCellValue(user.getAge());
		}

		File file = new File("test.xls");

		try
		{
			OutputStream os = new FileOutputStream(file);
			wb.write(os);
			os.close();
		}
		catch (Exception e)
		{
			e.printStackTrace();
		}

		InputStream is = null;
		try
		{
			is = new FileInputStream(file);
		}
		catch (FileNotFoundException e)
		{
			e.printStackTrace();
		}

		return is;

	}


上面在服务器端生成test.xls时这样会造成多用户不同步的情况。

解决办法:
1.让每个用户产生一个随机名字的文件
bug:多个用户的话,这样的垃圾文件会越来越多。
所以,当用户下载完后,过一段时间就将他删掉。
生成一个文件后通过线程将文件删除。
new Thread(new Runnable()
		{
			public void run()
			{
				try
				{
					Thread.sleep(15000);
				}
				catch (InterruptedException e)
				{
					e.printStackTrace();
				}
				
				file.delete();//删除临时文件 
			}
		}).start();

或者服务器启动就删除
web.xml
  <servlet>
    <servlet-name>DeleteFilesServlet</servlet-name>
    <servlet-class>com.test.servlet.DeleteFilesServlet</servlet-class>
    <!-- 这个是用来server自动访问,不需要urlmapping -->
    <load-on-startup>8</load-on-startup>
  </servlet>


public class DeleteFilesServlet extends HttpServlet
{

	public void destroy()
	{
		
	}

	public void init() throws ServletException
	{
//		File file = new File(".");
//		
//		File[] subFiles = file.listFiles();
//		
//		for(File f : subFiles)
//		{
//			if(f.getName().endsWith("xls"))
//			{
//				f.delete();
//			}
//		}
		
		File file = new File(".");
		
		File[] subFiles = file.listFiles(new FileFilter()
		{
			public boolean accept(File pathname)
			{
				if(pathname.getName().endsWith("xls"))
				{
					return true;
				}
				
				return false;
			}
		}
		);
		
		for(File f : subFiles)
		{
			f.delete();
		}
	}

}


2.将构造好的流放到内存里,不会在服务

器端产生大量的临时文件。
分享到:
评论

相关推荐

    Apache POI 模板导出excel.rar

    在"Apache POI 模板导出excel.rar"这个压缩包中,我们聚焦于使用Apache POI 3.16版本来生成基于Excel模板的数据导出功能。这个过程涉及到多个关键知识点,下面将详细阐述。 1. **Apache POI库**:Apache POI是一个...

    java后台利用Apache poi 生成excel文档提供前台下载示例

    Java 后台利用 Apache POI 生成 Excel 文档提供前台下载示例 本篇文章主要介绍了 Java 后台利用 Apache POI 生成 Excel 文档提供前台下载示例,非常具有实用价值。下面是文章的详细解释: Apache POI 简介 Apache...

    poi生成excel表格

    Apache POI 是一个开源项目...以上是Apache POI生成Excel表格的基本知识点和操作步骤。通过这些示例,你可以理解如何在Java应用中利用POI进行Excel文件的创建、读取和修改,以及如何结合数据库操作实现数据的导入导出。

    java的poi生成excel图表demo

    通过这个“java的poi生成excel图表demo”,我们可以学习如何利用POI创建动态的、数据驱动的Excel曲线图,进一步提升数据的可视性和理解性。这个压缩包中的“EexcelChart”可能是示例代码、测试数据或生成的Excel文件...

    利用Java Apache POI 生成Word文档示例代码

    本篇文章提供了一个简单的示例代码,演示了如何使用Apache POI生成Word文档。开发者可以根据自己的需要,调整和修改示例代码,以满足自己的需求。 知识点: 1.Archive POI是一个开源的Java库,用于对Microsoft ...

    POI生成excel报表

    ### POI生成Excel报表知识点详解 #### 一、Apache POI简介 Apache POI是Apache软件基金会的一个开源项目,主要用于处理Microsoft Office格式...以上就是使用Apache POI生成Excel报表的主要知识点,希望对你有所帮助。

    Apache poi 操作 excel 文件压缩包

    在实际应用中,Apache POI 往往用于数据分析、报表生成、数据导入导出等场景,尤其在需要在服务器端生成或处理Excel文件时,它是Java开发者的重要工具。通过熟练掌握Apache POI,你可以提高Java应用程序与Excel交互...

    使用POI生成EXCEL

    标题中的“使用POI生成EXCEL”指的是使用Apache POI库来创建Microsoft Excel文件的过程。Apache POI是一个开源项目,提供了Java API,可以用来读写Microsoft Office格式的文件,包括Excel(.xls和.xlsx格式)。这个...

    Java通过apache poi生成excel实例代码

    Java通过Apache POI生成Excel实例代码 Java通过Apache POI生成Excel实例代码是Java开发中一个常用的功能,通过使用Apache POI库可以轻松地生成Excel文件。本文将详细介绍如何使用Apache POI生成Excel实例代码,并...

    使用poi生成Excel所需要的jar包

    在这个场景中,"使用poi生成Excel所需要的jar包"指的是利用Apache POI库来生成Excel文件。POI-3.9.jar是Apache POI项目的一个版本,包含了所有必要的类和方法,让我们可以处理Excel的XLS和XLSX格式。 首先,Apache ...

    Apache Poi Excel导出

    这篇博客“Apache Poi Excel导出”可能详细介绍了如何使用Apache POI库来生成Excel文件,特别适用于数据导出或报表生成等场景。 Apache POI API 包含多个关键组件,如HSSF(Horizontally Stored Format)用于处理旧...

    android中poi生成word文档和excel文档

    在标题“android中poi生成word文档和excel文档”中提到的使用POI库生成Word和Excel文档,主要涉及到以下几个关键知识点: 1. **Apache POI 概述**:Apache POI 是一个开源项目,提供了一套API,用于读写Microsoft ...

    使用ITEXT导出PDF、WORD,APACHE POI导出EXCEL报表文件

    本文将深入探讨如何使用ITEXT库导出PDF和Word,以及利用Apache POI库导出Excel报表文件。 首先,让我们来了解ITEXT库。ITEXT是一个开源Java库,专门用于创建和修改PDF文档。使用ITEXT,你可以方便地生成包含文本、...

    POI操作Excel完美生成水印

    以下是一个简化的示例代码片段,展示了如何使用Apache POI生成水印: ```java import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.*; //... 加载Excel文件 ... // 创建文字图片 ...

    Apache poi 导出excel实例

    这篇博客文章“Apache POI 导出excel实例”将深入探讨如何使用Apache POI库来生成Excel文件,这对于在Java环境中处理大量数据并需要导出为Excel格式的应用非常有用。 首先,我们需要导入Apache POI库到我们的项目中...

    poi 生成excel

    在描述中提到的博客链接指向了一个关于如何使用Apache POI生成Excel文件的具体教程或经验分享。虽然具体内容没有给出,但通常这类教程会涵盖以下几个关键知识点: 1. **Apache POI介绍**:首先会介绍Apache POI项目...

    POI 生成EXCEL2007【含例子】

    标题 "POI 生成EXCEL2007【含例子】" 涉及到的知识点主要集中在Apache POI库的使用上,这是一个强大的Java API,用于读取、写入和修改Microsoft Office格式的文件,特别是Excel文件。在这个场景中,重点是创建和操作...

    poi-3.0.2 生成excel表工具

    在使用Apache POI生成Excel表时,首先你需要创建一个`Workbook`对象,这代表Excel的工作簿。然后,可以在这个工作簿中添加`Sheet`,对应Excel中的工作表。每个工作表可以添加多个`Row`,行里面再包含`Cell`,即...

    apache POI 导出Excel 设置打印

    Apache POI 是一个开源库,专门用于处理Microsoft Office格式的文件,包括Excel。在Java开发中,Apache POI 提供了API,使我们能够创建、修改和读取Excel文档。当我们需要导出Excel并设置打印参数时,Apache POI ...

    poi生成excel实例

    标题中的“poi生成excel实例”指的是使用Apache POI库来创建和操作Microsoft Excel文件的实践案例。Apache POI是开源的Java库,它允许开发者在Java应用中读写Microsoft Office格式的文件,包括Excel。 在描述中提到...

Global site tag (gtag.js) - Google Analytics