利用模板导出文件(一)之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);
- //
- }
模板样式如下:
到此,整个项目就基本完成,然后运行结果如下:
版权声明:本文为leihenqianshang原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。