大家好,又见面了,我是你们的朋友全栈君。
由于现在好多公司都在实行办公无纸化操作,所以一般都是使用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);
//
}
模板样式如下:
到此,整个项目就基本完成,然后运行结果如下:
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/163875.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...