工具类:
import cn.hutool.core.io.FileTypeUtil;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.google.common.primitives.Bytes;
import org.apache.commons.beanutils.PropertyUtilsBean;
import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
import org.apache.poi.hssf.usermodel.HSSFPatriarch;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.ClientAnchor;
import javax.activation.MimetypesFileTypeMap;
import javax.imageio.ImageIO;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
import java.io.*;
import java.lang.reflect.Field;
import java.util.List;
public class CVSUtil {
//data為數據列表
//title為欄位名稱
//注意:data列表內的對象屬性必須和標題順序一一對應
public static void creatAndDownloadCVSFile(List data, String[] title, HttpServletResponse response) throws Exception {
StringBuffer write = new StringBuffer();
String enter = "\r\n";
if(title!=null&&title.length!=0){
//寫入標題列
for(int i=0;i<title.length;i++){
write.append(title[i]);
if(i<title.length-1){
write.append(",");
}else{
write.append(enter);
}
}
}
if(data!=null&&data.size()!=0){
for(int i=0;i<data.size();i++){
Object obj = data.get(i);
Class<?> clazz = obj.getClass();
Field[] fields = clazz.getDeclaredFields();
PropertyUtilsBean p = new PropertyUtilsBean();
for (int k=0;k<fields.length;k++){
String