SSH集成之导入导出代码示例-struts部分(2)

package com.csmn.eg.action;

import java.io.File;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;

import com.csmn.base.action.BaseAction;
import com.csmn.eg.service.ImExPortService;
import com.csmn.test.common.po.Aircraft;

/**
 * <p>
 * ImExportAction類主要用於-导入导出功能.
 * </p>
 * <p>
 * 創建時間 Jul 8, 2012 - 4:46:01 PM
 * </p>
 * <blockquote>
 * <h4>歷史修改記錄</h4>
 * </blockquote>
 * <p>
 * copyright csmn 2010-2012, all rights reserved.
 * </p> 
 * @author  車水碼農
 * @version 1.0
 */
public class ImExportAction extends BaseAction {
	/**
	 * 
	 */
	private static final long serialVersionUID = -3523578787978204042L;
	// 实体类(注入)
	private Aircraft aircraft;
	// 业务操作接口(注入)
	private ImExPortService imExPortService;
	// 提示信息
	private String msg;
	// 导出(下载)的文件流
	private InputStream targetFile;
	// 导出(下载)的文件名称
	private String downloadFileName;
	// 获取上传文件
	private File[] attachments;
	// 获取上传文件名称
    private String[] attachmentsFileName;
    // 获取上传文件类型
    private String[] attachmentsContentType;
    
    /**
     * <p>
     * list方法-使用的display标签分页展现列表数据.
     * </p>
     * <p>
     * 創建人 車水碼農 創建時間 Jul 8, 2012 - 4:53:27 PM
     * </p>
     * <blockquote>
     * <h4>歷史修改記錄</h4>
     * <ul>
     * <li>車水碼農 2012-7-8 为方便使用,这里注释掉了分页查询的代码,使用的简单的显示所有数据查询.
     * </ul>
     * </blockquote>
     * @return 
     */
    public String list() {
//    	// 得到起始索引 
//		int start = this.getFromIndex();
//		// 得到每页显示数量 
//		int limit = this.getLimit();
//		// 获取数据
//    	PaginatedListHelper paginatedListHelper = this.imExPortService.getDisplayData(aircraft, start, limit);
//    	// 设置页面上的显示数据
//    	this.paginaredList = this.createPaginaredList(paginatedListHelper.getList(), paginatedListHelper.getFullListSize());

    	java.util.List<Aircraft> aircraftList = this.imExPortService.getAircraftList();
    	super.putToRequest("aircraftList", aircraftList);
    	return SUCCESS;
    }
    
    /**
     * <p>
     * importExceling方法-通过POI操作,导入excel中的数据到数据库.
     * </p>
     * <p>
     * 創建人 車水碼農 創建時間 Jul 8, 2012 - 5:32:22 PM
     * </p>
     * <blockquote>
     * <h4>歷史修改記錄</h4>
     * <ul>
     * <li>修改人 修改時間 修改描述
     * </ul>
     * </blockquote>
     * @return 
     */
	public String importExceling() {
		msg = this.imExPortService.importExceling(attachments[0]);
		return LIST;
	}
	public String importWording() {
		// TODO 未实现
		return LIST;
	}
	public String importPdfing() {
		// TODO 未实现
		return LIST;
	}
	
	/**
	 * <p>
	 * exportExceling方法-通过POI操作,导出数据库中数据到excel中.
	 * </p>
	 * <p>
	 * 創建人 車水碼農 創建時間 Jul 8, 2012 - 5:40:35 PM
	 * </p>
	 * <blockquote>
	 * <h4>歷史修改記錄</h4>
	 * <ul>
	 * <li>修改人 修改時間 修改描述
	 * </ul>
	 * </blockquote>
	 * @return 
	 */
	public String exportExceling() {
		targetFile = this.imExPortService.exportExceling(aircraft);
		downloadFileName = "航空器数据信息表.xls";
		this.setDownloadFileName(downloadFileName);
		return EXCEL;
	}
	
	/**
	 * <p>
	 * exportWording方法-通过itext2.1.7导出word.
	 * </p>
	 * <p>
	 * 創建人 車水碼農 創建時間 Jul 8, 2012 - 10:10:07 PM
	 * </p>
	 * <blockquote>
	 * <h4>歷史修改記錄</h4>
	 * <ul>
	 * <li>修改人 修改時間 修改描述
	 * </ul>
	 * </blockquote>
	 * @return 
	 */
	public String exportWording() {
		targetFile = this.imExPortService.exportWording(aircraft);
		downloadFileName = "航空器数据信息表.doc";
		this.setDownloadFileName(downloadFileName);
		return WORD;
	}
	public String exportPdfing() {
		targetFile = this.imExPortService.exportPdfing(aircraft);
		downloadFileName = "航空器数据信息表.pdf";
		this.setDownloadFileName(downloadFileName);
		return PDF;
	}
	// ...................geter & seter....................
	/**
	 * @param downloadFileName 设置 downloadFileName
	 */
	public void setDownloadFileName(String downloadFileName) {
		try {
			downloadFileName = new String(downloadFileName.getBytes(), "ISO8859-1");
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
		this.downloadFileName = downloadFileName;
	}

}

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

    <package name="com.csmn.eg.action" namespace="/eg" extends="csmn.default">
        <action name="imexport_*" method="{1}" class="eg.imExportAction">
            <result name="success">/com/csmn/eg/imexport/imexport_list.jsp</result>
            <result name="list_action" type="redirectAction">
            	<param name="msg">${msg}</param>
            	<param name="actionName">imexport_list</param>
            	<param name="namespace">/eg</param>
            </result>
            <result name="excel" type="stream">
            	<param name="contentType">application/vnd.ms-excel</param>
            	<param name="contentDisposition">attachment;filename="${downloadFileName}"</param>
            	<param name="bufferSize">1024</param>
            	<param name="inputName">targetFile</param>
            </result>
            <result name="word" type="stream">
            	<param name="contentType">application/vnd.ms-word</param>
            	<param name="contentDisposition">attachment;filename="${downloadFileName}"</param>
            	<param name="bufferSize">1024</param>
            	<param name="inputName">targetFile</param>
            </result>
            <result name="pdf" type="stream">
            	<!-- 下载文件类型 -->
            	<param name="contentType">application/pdf</param>
            	<!-- <param name="contentType">application/octet-stream</param> -->
            	<!-- 下载对话框所弹出的文件名 -->
            	<param name="contentDisposition">attachment;filename="${downloadFileName}"</param>
            	<param name="bufferSize">1024</param>
            	<!-- 下载的InputStream流,Struts2自己动对应Action中的相应数据,该数据必须为InputStream类型 -->
            	<param name="inputName">targetFile</param>
            </result>
        </action>
    </package>
</struts>

你可能感兴趣的:(Excel,word,导入,导出,pdf)