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

利用模板导出文件(一)之XLSTransformer导出excel文件由于现在好多公司都在实行办公无纸化操作,所以一般都是使用excel以及word来办公,本文是公司项目中使用excel文件模板生成对应的文件:首先,需要导入一下几个包:接下来就是具体的代码:importjava.io.File;importjava.io.IOException;importjava.util.ArrayList;importjava.util.Has

大家好,又见面了,我是你们的朋友全栈君。

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

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

利用模板导出文件(一)之XLSTransformer导出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);
		//

	}

模板样式如下:

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/163875.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 煤矿云计算大数据_构建物联网

    煤矿云计算大数据_构建物联网传统工业实时历史数据库与时序数据库的区别?本文介绍了实时数据库和时序数据库,并就其特点、应用场景、相关厂商、联系与区别做介绍。实时历史数据库![实时历史数据库架构.png](https://img-blog.csdnimg.cn/img_convert/ddd8d3b24107ac2ebf328f3fd390c603.png#clientId=ud49e0880-2e25-4&crop=0&crop=0&crop=1&crop=1&from=drop&i

    2022年10月4日
    3
  • QT 播放器之界面布局[通俗易懂]

    QT 播放器之界面布局[通俗易懂]第一步。。。当然是创建项目啦然后修改项目的名称,接着找一个自己喜欢的文件夹藏着。记得路径不能有中文,当然项目名称也不能有中文之后一直下一步直到完成,来到该界面后双击ui文件去布局右键把菜单栏,工具栏,状态栏去除先把控件摆好,之后再修改名字设置按钮的最大尺寸设置centralWidget布局成右边这样最后修改控件的对象名称…

    2022年6月13日
    44
  • Shiro框架:授权流程、授权方式、Shiro授权入门程序、自定义Realm进行授权

    Shiro框架:授权流程、授权方式、Shiro授权入门程序、自定义Realm进行授权

    2021年9月26日
    38
  • java泛型详解

    java泛型详解1、什么是java泛型?泛型是JavaSE1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。2、为什么需要泛型?Java语言引入泛型的好处是安全简单。可以将运行时错误提前到编译时错误。在JavaSE1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现

    2022年6月28日
    32
  • vue.js与jquery的区别_说出两者之间的区别

    vue.js与jquery的区别_说出两者之间的区别jQuery:曾经是前端最流行的js库。Vue:是一个兴起的js库,是一个精简的MVVM。从技术角度讲。Vue.js专注于MVVM模型的ViewModel层,它通过双向数据绑定把view和Model层连接起来,通过对数据的操作完成对页面视图的渲染。二者的区别是:一、Vue和jQuery对比jquery是使用选择器()选取DOM对象,对其进行赋值、取值、事件绑定等操作,和原生的HTML的区别只在于可以更方便的选取和操作DOM对象,而数据和界面是在一起的。二、Vue则是通过Vue对.

    2022年10月16日
    4
  • wxpython 教程 pdf_活学活用wxPython 完整版PDF

    wxpython 教程 pdf_活学活用wxPython 完整版PDF我们将《活学活用wxPython》分成了三个部分。第一部分简要介绍wxPython的相关概念,并指导读者开始运用wxPython,同时还提供了一些wxPython最佳实践的信息。第一部分的章节包括:第一章欢迎使用wxPython在该章节中,我们对wxPython进行介绍,并解释为什么说它是自切片面包以来最伟大的事务,同时还提供了用于创建wxPython的一些技术背景资料。第二章给wxPyth…

    2022年5月21日
    34

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号