Commit f03db9f6 by shenjunjie

Merge branch 'feature' into 'release'

调整excel输出单元格字符串上限

See merge request !293
parents 7226e275 eae36092
......@@ -14,6 +14,7 @@ import org.apache.logging.log4j.Logger;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Field;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
......@@ -153,6 +154,7 @@ public class EasyExcelUtil {
*/
public static <T> void download(String fileName, String sheetName, Class<T> clazz, List<T> datas, HttpServletResponse response) {
try {
formatExcelExports(clazz, datas);
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
// 这里URLEncoder.encode可以防止中文乱码
......@@ -187,4 +189,27 @@ public class EasyExcelUtil {
log.error("file:{},download error:", fileName, e);
}
}
private static <T> void formatExcelExports(Class<T> clazz, List<T> datas){
List<Field> stringFields = new ArrayList<>();
// 记录需要设置的部分
for (Field field : clazz.getDeclaredFields()) {
// String格式截取前32767位
if (field.getGenericType().toString().equals(String.class.toString())) {
field.setAccessible(true);
stringFields.add(field);
}
}
datas.forEach(data -> {
for (Field field : stringFields) {
try {
// 截取为excel单元格允许的最大长度
field.set(data, StringUtils.substring((String) (field.get(data)), 0, 32767));
} catch (IllegalAccessException e) {
log.error(e);
}
}
});
}
}
......@@ -5,7 +5,6 @@ import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.fastjson.JSONObject;
import lombok.Data;
import lombok.ToString;
import org.apache.commons.lang3.StringUtils;
import java.util.Date;
......@@ -44,10 +43,6 @@ public class ExportSearchWholeDTO {
dto.setTime(new Date((Long) jsonObject.get("time")));
dto.setPlatform(jsonObject.getString("platform"));
dto.setChannel(jsonObject.getString("channel"));
// 截取为excel单元格允许的最大长度
dto.setTitle(StringUtils.substring(jsonObject.getString("title"), 0, 32767));
dto.setContent(StringUtils.substring(jsonObject.getString("content"), 0, 32767));
dto.setUrl(StringUtils.substring(jsonObject.getString("url"), 0, 32767));
return dto;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment