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

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

接下来就是具体的代码:

 

[java] view plain copy

 
  1. import java.io.File;  
  2. import java.io.IOException;  
  3. import java.util.ArrayList;  
  4. import java.util.HashMap;  
  5. import java.util.List;  
  6. import java.util.Map;  
  7.   
  8. import javax.swing.JOptionPane;  
  9.   
  10. import net.sf.jxls.exception.ParsePropertyException;  
  11. import net.sf.jxls.transformer.XLSTransformer;  
  12. /** 
  13.  * 利用模板导出excel文件 
  14.  * @typename:XLSTransformerExport 
  15.  * @author: FishRoad 
  16.  * @since: 2015年8月24日 下午1:35:29 
  17.  * 
  18.  */  
  19. public class XLSTransformerExport {  
  20.       
  21.     public static void main(String []args){  
  22.         //组织数据  
  23.          List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();  
  24.           Map<String, Object> m1 = new HashMap<String,Object>();  
  25.           m1.put(“PRONAME”, “项目1”);  
  26.           m1.put(“PLANTYPE”, “计划1”);  
  27.           m1.put(“PROTYPE”, “类别1”);  
  28.           Map<String, Object> m2 = new HashMap<String,Object>();  
  29.           m2.put(“PRONAME”, “项目2”);  
  30.           m2.put(“PLANTYPE”, “计划2”);  
  31.           m2.put(“PROTYPE”, “类别2”);  
  32.             
  33.           list.add(m1);  
  34.           list.add(m2);  
  35.           Map<String, Object> para = new HashMap<String, Object>();  
  36.           para.put(“result”, list);  
  37.           XLSTransformer transformer = new XLSTransformer();  
  38.             
  39.           //String temppath = “C:\\Users\\Administrator\\Documents\\测试模板.xlsx”;  
  40.           //模板路径,如果用的模板是xlsx,则生成的文件类型也必须为xlsx类型,否则由于格式不对,会打不开文件  
  41.           String temppath = “C:\\Users\\Administrator\\Documents\\测试模板_xls.xls”;  
  42.           //输出文件路径,以及路径名称  
  43.           String exportpath =UtilTools.getDirPath(“测试结果_xls.xls”, new File(“C:\\Users\\Administrator\\Documents”));  
  44.           System.out.println(exportpath);  
  45.           try {  
  46.               //利用transformXLS来输出文件  
  47.             transformer.transformXLS(temppath, para,exportpath);  
  48.             //生成文件后提示是否立即打开该文件  
  49.             if(JOptionPane.showConfirmDialog(null, “导出成功,是否打开文件?”)==0){  
  50.                 UtilTools.openDirFile(exportpath);  
  51.             }  
  52.               
  53.         } catch (ParsePropertyException e) {  
  54.             System.out.println(“失败!”);  
  55.         } catch (IOException e) {  
  56.             System.out.println(“失败!”);  
  57.         }  
  58.             
  59.     }  
  60.       
  61.        
  62.   
  63. }  

 

 

用到的工具类:

 

[java] view plain copy

 
  1. /** 
  2.     * 保存文件的时候指定文件名和文件的保存路径 
  3.     * @param filename 
  4.     * @param path 
  5.     * @return 
  6.     */  
  7.    public static String getDirPath(String filename, File path) {  
  8.        JFileChooser parseDir = new JFileChooser();  
  9.        parseDir.setCurrentDirectory(path);  
  10.        parseDir.setAcceptAllFileFilterUsed(false);  
  11.        parseDir.setSelectedFile(new File(filename));  
  12.        int result = parseDir.showSaveDialog(null);  
  13.        if (result == JFileChooser.APPROVE_OPTION) {  
  14.            return parseDir.getSelectedFile().getAbsolutePath();  
  15.        } else {  
  16.            return “”;  
  17.        }  
  18.    }  

 

[java] view plain copy

 
  1. /** 
  2.      * 打开文件所在的目录 
  3.      *  
  4.      * @param destFileName 
  5.      * @throws IOException 
  6.      */  
  7.     public static void openDirFile(String destFileName) throws IOException {  
  8.         File file = new File(destFileName);  
  9.         java.awt.Desktop.getDesktop().open(file);  
  10.         //  
  11.   
  12.     }  

 

模板样式如下:

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

版权声明:本文为leihenqianshang原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/leihenqianshang/articles/5578128.html