发布时间:2025-12-09 14:04:20 浏览次数:4
由于现在好多公司都在实行办公无纸化操作,所以一般都是使用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);//}模板样式如下:
到此,整个项目就基本完成,然后运行结果如下: