`

数据导入Excel并下载功能

 
阅读更多

1、创建ExcelExportAction类

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;
import com.opensymphony.xwork2.ActionSupport;
public class ExcelExportAction extends ActionSupport{
    private static final long serialVersionUID = 4565154051377016557L;
    // private static final long cen = 2565374152L;
    private static final String[] header = { "序号", "员工工号", "员工姓名", "所属部门", "职位", "入职日期", "备注" };
    private String excelFileName;
    private InputStream excelStream;

    /**
     * export excel
     * 
     * @return
     */
    public String exportExcel() {
	try {
	    // 创建excel
	    HSSFWorkbook workbook = new HSSFWorkbook();
	    HSSFSheet sheet = workbook.createSheet("测试文件1");
	    // 这里是createRow(int)可别用sheet.getRow(int)切记。。。。
	    HSSFRow row = sheet.createRow(0);
	    row.setHeightInPoints(25);
	    HSSFCellStyle cellstyle = workbook.createCellStyle();
	    cellstyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
	    cellstyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
	    cellstyle.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index);
	    cellstyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
	    HSSFFont font = workbook.createFont();
	    font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
	    cellstyle.setFont(font);
	    HSSFCell cell;
	    for (int i = 0; i < header.length; i++) {
		cell = row.createCell(i);
		cell.setCellStyle(cellstyle);
		sheet.setColumnWidth(i,25*256);
		cell.setCellValue(header[i]);
	    }
	    // 定义20行数据插入到excel表中
	    for (int j = 1; j <= 50; j++) {
		row = sheet.createRow(j);
		row.setHeightInPoints(20);
		HSSFCell cell0 = row.createCell(0);
		cell0.setCellValue(j);

		HSSFCell cell1 = row.createCell(1);
		cell1.setCellValue("员工工号" + j);

		HSSFCell cell2 = row.createCell(2);
		cell2.setCellValue("员工姓名" + j);

		HSSFCell cell3 = row.createCell(3);
		cell3.setCellValue("软研" + j + "部");

		HSSFCell cell4 = row.createCell(4);
		cell4.setCellValue("程序员" + j);

		HSSFCell cell5 = row.createCell(5);
		cell5.setCellValue("2013-05-28");

		HSSFCell cell6 = row.createCell(6);
		cell6.setCellValue("remark");
	    }
	    // 将文件存入流中
	    ByteArrayOutputStream bos = new ByteArrayOutputStream();
	    workbook.write(bos);
	    byte[] fileContent = bos.toByteArray();
	    ByteArrayInputStream bis = new ByteArrayInputStream(fileContent);

	    excelStream = bis;
	    excelFileName = "EXCEL文件导出测试.xls";
	    excelFileName = new String(excelFileName.getBytes(),"iso-8859-1");
	} catch (IOException e) {
	    e.printStackTrace();
	}

	return SUCCESS;
    }

    /** getter/setter method **/
    public String getExcelFileName() {
	return excelFileName;
    }

    public void setExcelFileName(String excelFileName) {
	this.excelFileName = excelFileName;
    }

    public InputStream getExcelStream() {
	return excelStream;
    }

    public void setExcelStream(InputStream excelStream) {
	this.excelStream = excelStream;
    }

}

 2、struts.xml配置

<!-- exprot excel file -->
		<action name="exportExcel" class="com.hnyyzw.trm.action.ExcelExportAction"
			method="exportExcel">
			<result name="success" type="stream">
				<!-- 下载文件类型 -->
				<param name="contentType">application/vnd.ms-excel</param>
				<!-- 返回流 excelStream 在Action中的变量名 -->
				<param name="inputName">excelStream</param>
				<!-- attachment 这个位置的参数挺特殊的,可以设置成下载时,是否出现个下载提示框,或者直接下载之类的。 fileName指定生成的文件名字(适合动态生成文件名,比如做报表时,一般都要说是几月的统计数据之类)为action中变量 -->
				<param name="contentDisposition">attachment;filename=${excelFileName}</param>
				<param name="bufferSize">1024</param>
			</result>
		</action>

 

分享到:
评论

相关推荐

    C#将数据导入excel和Excel数据导入数据库

    本主题聚焦于如何利用C#处理Excel文件,并将其数据导入到SQL Server数据库中。这一过程通常涉及到两个主要步骤:读取Excel数据和与数据库进行交互。 首先,我们来看C#读取Excel数据的部分。在.NET框架中,可以使用...

    matlab导入excel数据教程

    将 Excel 中的数据导入 Matlab 是一种常见的数据处理需求。以下是 Matlab 导入 Excel 数据的教程。 1. 使用 xlsread 命令导入 Excel 数据 在 Matlab 中,可以使用 xlsread 命令将 Excel 中的数据读取到 Matlab 中...

    如何利用Smulink导入Excel数据进行数据分析

    ### 如何利用Simulink导入Excel数据进行数据分析 ...总之,通过Simulink导入Excel数据并进行分析是一种非常实用的技术手段,它不仅有助于提高模型的准确性和可靠性,也为后续的数据挖掘和智能决策提供了坚实的基础。

    destoon添加excel数据导入功能.doc

    destoon添加excel数据导入功能,利用phpexcel插件实现destoon的excel导入功能,导入数据到数据表中,并展示,也可在thinkphp中利用该插件实现excel数据的导入和导出

    数据导入导出Excel

    在IT行业中,数据导入导出Excel是一项常见的任务,特别是在数据分析、报表生成以及系统间的数据交换等领域。本项目可能提供了一种实用的方法来处理这类需求。下面将详细解释相关的知识点。 首先,我们要理解什么是...

    Developer导入Excel数据

    其中,导入 Excel 数据是 PLSQL Developer 的一个重要功能,允许开发者快速地将 Excel 文件中的数据导入到 Oracle 数据库中。 标签解释 本节内容的标签是“导入”,这是因为本节主要介绍了如何使用 PLSQL Developer...

    vb批量将excel数据导入access以及批量将access数据库中的数据导入excel源代码

    标题提到的“vb批量将excel数据导入access以及批量将access数据库中的数据导入excel源代码”是解决这类问题的一种有效方案。下面将详细介绍这两个过程的关键知识点。 1. Excel数据导入Access: - **数据连接**:...

    ASP.NET中数据库数据导入Excel并打印

    在ASP.NET中,将数据库数据导入Excel并打印的一种基础方法是直接利用Internet Explorer(IE)的内置打印功能。这种方法相对简单,通过在网页上嵌入一个WebBrowser控件,并使用JavaScript或VBA代码触发打印操作。例如...

    PLSQL Developer导入数据excel表格

    本教程将详细讲解如何使用PLSQL Developer导入Excel表格数据。 首先,让我们了解一下PLSQL Developer中的"ODBC导入器"功能。ODBC(Open Database Connectivity)是一种标准的数据库访问接口,允许应用程序通过ODBC...

    FineReport实现EXCEL数据导入自由报表

    FineReport作为一款强大的报表工具,提供了便捷的数据导入功能,使得从Excel到填报表的数据迁移变得简单高效。 首先,我们需要理解报表工具在数据管理中的作用。报表工具可以辅助用户快速生成各种统计和分析报表,...

    用Jxls实现数据导入excel实例

    本文将详细介绍如何使用Jxls实现数据导入Excel的实例。 Jxls库的核心功能在于提供了一种声明式的方式来处理Excel模板,通过使用Apache POI库来操作Excel文件。它的主要优点是将数据和样式分离,让开发者可以专注于...

    mysql客户端Sqlyog之excel数据导入方法.docx

    MySQL 客户端 Sqlyog 之 Excel 数据导入方法 Sqlyog 是一款功能强大且易用的 MySQL 客户端工具,可以实现快速的数据导入和管理。下面我们将详细介绍 Sqlyog 之 Excel 数据导入方法。 Sqlyog 导入数据的优点 ...

    layui-excel数据导入demo-源码-导入即用

    layui-excel数据导入功能的核心在于,它提供了一种便捷的方式,允许用户直接通过Excel文件导入数据到前端表格中。这一特性极大地简化了数据输入和管理流程,尤其适用于需要大量数据录入的场景。以下我们将详细介绍这...

    Spring框架实现Excel批量导入数据

    本教程将详细讲解如何利用Spring框架实现Excel数据的批量导入,以提高数据录入效率。 首先,我们需要了解Excel文件的结构。Excel是一种常用的电子表格软件,它的数据通常存储在工作簿(Workbook)中,每个工作簿...

    多线程导入excel 数据

    在Java编程中,多线程导入Excel数据是一项常见的任务,特别是在大数据处理和高并发场景下。...例如,文件`BigdataTest.java`可能是实现上述功能的一个测试类,通过它我们可以模拟并测试导入Excel数据的多线程场景。

    C#导入excel数据

    在.NET框架中,C#是一种常用的编程语言,用于开发各种应用程序,包括与数据处理相关的任务。Excel文件由于其直观的格式和广泛的应用,经常需要在程序中被读取和操作。...理解这些概念将帮助你有效地实现数据导入功能。

    SpringBoot+AntDesignVue实现excel导入功能

    SpringBoot+AntDesignVue 实现 Excel 导入功能 在本篇文章中,我们将介绍如何使用 SpringBoot 和 AntDesignVue 实现 Excel 导入功能。这个功能主要是使用 Ant Design Vue 中的 upload 组件来实现导入 excel 文件的...

    word或txt数据导入excel方法

    接下来是将整理好的txt文件导入Excel: 1. 打开Excel,选择一个你希望数据开始导入的单元格。这通常是你工作表的第一个空白单元格。 2. 进入“数据”选项卡,在“获取外部数据”区域找到并点击“自文本”。 3. 在弹...

    poi实现导入数据到excel模板

    poi实现导入数据到excel模板,本来想上传poi的jar包,谁知限制我只能上传15M的文件,汗。。。。。 不知道啥时候开始要分了... 代码见: https://github.com/thisisnohi/nohi-doc poi实现导入数据到excel模板。...

    C# 导入Excel文件到ListView和导出ListView到Excel文件

    - **性能优化**: 大文件或大量数据导入/导出时,应考虑分批处理,避免一次性加载所有数据导致内存占用过高。 - **用户交互**: 提供进度指示器或取消功能,提升用户体验。 - **错误处理**: 捕获可能出现的文件读写...

Global site tag (gtag.js) - Google Analytics