利用模板导出文件(一)之XLSTransformer导出excel文件

由于现在好多公司都在实行办公无纸化操作,所以一般都是使用excel以及word来办公,本文是公司项目中使用excel文件模板生成对应的文件:

首先,需要导入一下几个包:

接下来就是具体的代码:


import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.swing.JOptionPane;

import net.sf.jxls.exception.ParsePropertyException;
import net.sf.jxls.transformer.XLSTransformer;
/**
 * 利用模板导出excel文件
 * @typename:XLSTransformerExport
 * @author: FishRoad
 * @since: 2015年8月24日 下午1:35:29
 *
 */
public class XLSTransformerExport {
	
	public static void main(String []args){
		//组织数据
		 List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
	      Map<String, Object> m1 = new HashMap<String,Object>();
	      m1.put("PRONAME", "项目1");
	      m1.put("PLANTYPE", "计划1");
	      m1.put("PROTYPE", "类别1");
	      Map<String, Object> m2 = new HashMap<String,Object>();
	      m2.put("PRONAME", "项目2");
	      m2.put("PLANTYPE", "计划2");
	      m2.put("PROTYPE", "类别2");
	      
	      list.add(m1);
	      list.add(m2);
	      Map<String, Object> para = new HashMap<String, Object>();
	      para.put("result", list);
	      XLSTransformer transformer = new XLSTransformer();
	      
	      //String temppath = "C:\\Users\\Administrator\\Documents\\测试模板.xlsx";
	      //模板路径,如果用的模板是xlsx,则生成的文件类型也必须为xlsx类型,否则由于格式不对,会打不开文件
	      String temppath = "C:\\Users\\Administrator\\Documents\\测试模板_xls.xls";
	      //输出文件路径,以及路径名称
	      String exportpath =UtilTools.getDirPath("测试结果_xls.xls", new File("C:\\Users\\Administrator\\Documents"));
	      System.out.println(exportpath);
	      try {
	    	  //利用transformXLS来输出文件
			transformer.transformXLS(temppath, para,exportpath);
			//生成文件后提示是否立即打开该文件
	        if(JOptionPane.showConfirmDialog(null, "导出成功,是否打开文件?")==0){
	        	UtilTools.openDirFile(exportpath);
	        }
	        
		} catch (ParsePropertyException e) {
			System.out.println("失败!");
		} catch (IOException e) {
			System.out.println("失败!");
		}
	      
	}
	
	 

}

用到的工具类:

 /**
     * 保存文件的时候指定文件名和文件的保存路径
     * @param filename
     * @param path
     * @return
     */
    public static String getDirPath(String filename, File path) {
        JFileChooser parseDir = new JFileChooser();
        parseDir.setCurrentDirectory(path);
        parseDir.setAcceptAllFileFilterUsed(false);
        parseDir.setSelectedFile(new File(filename));
        int result = parseDir.showSaveDialog(null);
        if (result == JFileChooser.APPROVE_OPTION) {
            return parseDir.getSelectedFile().getAbsolutePath();
        } else {
            return "";
        }
    }

/**
	 * 打开文件所在的目录
	 * 
	 * @param destFileName
	 * @throws IOException
	 */
	public static void openDirFile(String destFileName) throws IOException {
		File file = new File(destFileName);
		java.awt.Desktop.getDesktop().open(file);
		//

	}


模板样式如下:

到此,整个项目就基本完成,然后运行结果如下:





  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值