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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • GridView编辑删除操作

    GridView编辑删除操作

  • webservice有哪些框架_web前端主流框架有哪些

    webservice有哪些框架_web前端主流框架有哪些1摘要 开发webservice应用程序中离不开框架的支持,当open-open网站列举的就有很多种,这对于开发者如何选择带来一定的疑惑。性能Webservice的关键要素,不同的框架性能上存在较大差异,而当前在官方网站、网络资料中可以方便的找到各自框架的介绍,但是很少有针对不同框架性能测试数据。本文选择了比较流行几个框架:Apache Axis1、Apache Axis2、Codeh

  • 【报错解决办法】ModuleNotFoundError: No module named ‘numba‘[通俗易懂]

    【报错解决办法】ModuleNotFoundError: No module named ‘numba‘[通俗易懂]numba是一款可以将python函数编译为机器代码的JIT编译器,经过numba编译的python代码(仅限数组运算),其运行速度可以接近C或FORTRAN语言。python之所以慢,是因为它是靠CPython编译的,numba的作用是给python换一种编译器。numba可以基于llvm动态生成优化代码,提高python的执行效率,只需要给python代码加上修饰器就好了。如果遇到ImportError:Nomodulenamednumba这样的问题,安装nu

    2022年10月23日
  • python爬虫爬图片教程_爬虫爬取图片的代码

    python爬虫爬图片教程_爬虫爬取图片的代码用Python爬虫来爬小姐姐本教程将教你从0开始走进Python爬虫1.我们先要知道Python爬虫的原理基本的Python爬虫原理很简单,分为三步获取网页源码通过分析源码并通过代码来获取其中想要的内容进行下载或其他操作话不多说直接开干注意!本教程只是为了快速入门爬虫并实现一个功能,不考虑代码写的漂不漂亮,规不规范先准备上我们的目标网页开始我用的工具是:JetBrai…

    2022年10月29日
  • 跳跃表(skiplist )详解及其C++编程实现

    跳跃表(skiplist )详解及其C++编程实现跳表SkipList跳表SkipList1、背景2、定义2.1、SkipList基本数据结构及其实现3、实现4、使用方法4.1、跳表的创建4.2、跳表插入操作参考跳表SkipList1、背景为什么选择跳表?目前经常使用的平衡数据结构有:B树,红黑树,AVL树,SplayTree,Treep等。跳表是平衡树的一种替代的数据结构,但是和红黑树不相同的是,跳表对于树的平衡的实现是基于一种随机化的算法的,这样也就是说跳表的插入和删除的工作是比较简单的。用跳表吧,跳表是一种随机化的数据结构,目前开源软件

    2022年10月19日
  • 二、快速开始——Spring集成Mybatis-Plus

    二、快速开始——Spring集成Mybatis-Plus由于MyBatis-Plus是在MyBatis的基础上只做增强不做改变,因此其与Spring的整合非常简单。只需把MyBatis的依赖换成MyBatis的依赖,再把sqlSessionFactory换成MyBatis-Plus的即可。下面让我们在Spring中快速集成Mybatis-Plus的具体操作:1、准备测试表–创建库CREATEDATABASEmp;–使用库USEm…

发表回复

您的电子邮箱地址不会被公开。

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