Excel导出方法 添加时间范围
This commit is contained in:
@@ -9,9 +9,11 @@ import java.io.OutputStream;
|
||||
import java.io.OutputStreamWriter;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -25,6 +27,7 @@ import org.apache.commons.lang3.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.nis.domain.basics.ServiceDictInfo;
|
||||
import com.nis.util.DictUtils;
|
||||
import com.nis.util.Encodes;
|
||||
import com.nis.util.Reflections;
|
||||
@@ -277,10 +280,16 @@ public class ExcelCsv {
|
||||
// If is dict, get dict label
|
||||
if (StringUtils.isNotBlank(ef.dictType())){
|
||||
String valStr=val==null?"":val.toString();
|
||||
if("type".equals(ef.dictType()) || "attribute".equals(ef.dictType())
|
||||
|| "label".equals(ef.dictType())){
|
||||
// Get basic info
|
||||
val = getBasicInfo(ef.dictType(),map,valStr);
|
||||
}else{
|
||||
//字典数据已做国际化处理
|
||||
String dict=DictUtils.getDictLabel(ef.dictType(), valStr, valStr);
|
||||
//如果找不到字典国际化值,把字典本身作为默认值放进去,不然导出就是空了
|
||||
val = msgProp.getProperty(dict,dict);
|
||||
}
|
||||
|
||||
}
|
||||
if(ef.title().equals("is_hex") && !StringUtil.isEmpty(val)){
|
||||
@@ -303,6 +312,12 @@ public class ExcelCsv {
|
||||
val ="";
|
||||
}
|
||||
}
|
||||
if(!StringUtil.isEmpty(val)) {
|
||||
if (val instanceof Date){
|
||||
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
val=sdf.format(val);
|
||||
}
|
||||
}
|
||||
}catch(Exception ex) {
|
||||
log.error("Get entity value failed",ex);
|
||||
val = "";
|
||||
@@ -316,24 +331,40 @@ public class ExcelCsv {
|
||||
return dataList;
|
||||
}
|
||||
|
||||
public static <T> void writeCSVFile(HttpServletResponse response,List<String> titleList,Map<String, List<String>> headMap, Map<String, List<String>> dataMap,String fileName) {
|
||||
public static <T> void writeCSVFile(HttpServletResponse response,List<String> titleList,Map<String, List<String>> headMap, Map<String, List<String>> dataMap,String fileName,
|
||||
String titleTime,Properties msgProp) {
|
||||
try {
|
||||
// 写入临时文件
|
||||
File tempFile = File.createTempFile("vehicle", ".csv");
|
||||
cs = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(tempFile), "utf-8"), 1024);
|
||||
cs.write(new String(bom, charset));
|
||||
//获取头部数据
|
||||
if(titleList.size()>0){
|
||||
List<String> heads=headMap.get(titleList.get(0));
|
||||
for (int i = 0; i < titleList.size(); i++) {
|
||||
if(i==0){
|
||||
//写入时间范围
|
||||
if(!StringUtils.isEmpty(titleTime)){
|
||||
cs.write(titleTime);
|
||||
cs.newLine();
|
||||
}
|
||||
}
|
||||
List<String> heads=headMap.get(titleList.get(i));
|
||||
if(i>0){
|
||||
//写入域配置标题
|
||||
cs.newLine();
|
||||
if(!StringUtils.isEmpty(titleList.get(i))){
|
||||
cs.write(msgProp.getProperty(titleList.get(i), titleList.get(i)));
|
||||
cs.newLine();
|
||||
}
|
||||
}
|
||||
// 写入文件头部
|
||||
writeHead(heads, cs);
|
||||
//获取文件内容
|
||||
List<String> datas=dataMap.get(titleList.get(0));
|
||||
List<String> datas=dataMap.get(titleList.get(i));
|
||||
// 写入文件内容
|
||||
for (String row : datas) {
|
||||
writeRow(row, cs);
|
||||
}
|
||||
}
|
||||
}
|
||||
cs.flush();
|
||||
OutputStream out = response.getOutputStream();
|
||||
byte[] b = new byte[10240];
|
||||
@@ -409,6 +440,56 @@ public class ExcelCsv {
|
||||
}
|
||||
csvWriter.newLine();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 设置性质、分类、标签等信息
|
||||
* @param dictType
|
||||
* @param map
|
||||
* @param val
|
||||
* @return
|
||||
*/
|
||||
public static String getBasicInfo(String dictType,Map map,String val) {
|
||||
String basicInfo="";
|
||||
List<ServiceDictInfo> list=new ArrayList<ServiceDictInfo>();
|
||||
if("type".equals(dictType)){
|
||||
list=(List<ServiceDictInfo>) map.get("fls");
|
||||
for (String info : val.split(",")) {
|
||||
for (ServiceDictInfo dictInfo : list) {
|
||||
if(info.equals(dictInfo.getServiceDictId().toString())){
|
||||
basicInfo+=","+dictInfo.getItemValue();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
if("attribute".equals(dictType)){
|
||||
list=(List<ServiceDictInfo>) map.get("xzs");
|
||||
for (String info : val.split(",")) {
|
||||
for (ServiceDictInfo dictInfo : list) {
|
||||
if(info.equals(dictInfo.getServiceDictId().toString())){
|
||||
basicInfo+=","+dictInfo.getItemValue();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if("label".equals(dictType)){
|
||||
list=(List<ServiceDictInfo>) map.get("labels");
|
||||
for (String info : val.split(",")) {
|
||||
for (ServiceDictInfo dictInfo : list) {
|
||||
if(info.equals(dictInfo.getServiceDictId().toString())){
|
||||
basicInfo+=","+dictInfo.getItemValue();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(!StringUtil.isEmpty(basicInfo)){
|
||||
basicInfo=basicInfo.substring(1);
|
||||
}
|
||||
return basicInfo;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 功能:判断字符串是否为日期格式
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user