package testModel;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.apache.commons.collections.map.HashedMap;
import org.apache.poi.ss.usermodel.Workbook;
import com.pactera.utils.UploadUtils;
import net.sf.jxls.transformer.XLSTransformer;
public class ExportTemplateTest {
public static void main(String[] args) {
// 测试导出数据
export();
}
@SuppressWarnings({"unchecked" })
public static void export() {
FileOutputStream out = null;
InputStream in = null;
try {
// 导出文件名
String name = "导出测试.xlsx";
// 导出路径(本地路劲) D://opensour//apache-tomcat-8.0.30//webapps//file-service//uploadfile
String exportPath = "D:\\opensour\\apache-tomcat-8.0.30\\webapps\\file-service\\uploadfile\\excelfile\\excelUploadTest";
// 时间节
String dateSplit = UploadUtils.getDateSplit(null);
File file = new File(exportPath + "/" + dateSplit); // 判断文件是否存在,不存在就新建
if(!file.exists()) {
file.mkdirs();
}
// 获取数据(模拟查库)
List<User> listUser = getUser();
// 模板数据以Map封装List集合进行遍历读取
Map<String,Object> map = new HashedMap();
map.put("list", listUser);
String path = exportPath + "/" + dateSplit + "/" + name;
XLSTransformer transformer = new XLSTransformer();
// 读入Excel模板
InputStream stream = ExportTemplateTest.class.getResourceAsStream("/LifeHouseinspectionsExcel/excelDemo.xlsx");
in = new BufferedInputStream(stream);
// 获取Excel
Workbook workBook = transformer.transformXLS(in, map);
// 输出Excel文件
out = new FileOutputStream(path);
workBook.write(out);
out.flush();
} catch (Exception e) {
e.printStackTrace();
}finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
}
}
if (out != null) {
try {
out.close();
} catch (IOException e) {
}
}
}
}
// 数据源
public static List<User> getUser(){
List<User> listUser = new ArrayList<>();
// 创建10条数据
for (int i = 0; i < 10; i++) {
User user = new User();
user.setName("i一度不凡"+i);
user.setSex("男");
user.setPhone("137****4314");
user.setEmail("iyedobufan@126.com");
user.setAddress("平云广场A塔14楼");
listUser.add(user);
}
return listUser;
}
}
模板样式:
结果显示: