wangrenhuang
2022-08-31 6b6bf55bd752a477643c798d9e9bba36bef277ef
导出文件工具类优化
2个文件已修改
120 ■■■■■ 已修改文件
src/main/java/com/hx/util/ExcelUtil.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/hx/util/FileUtils.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/hx/util/ExcelUtil.java
@@ -15,6 +15,8 @@
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.web.multipart.MultipartFile;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.*;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
@@ -719,4 +721,85 @@
    }
    public static File createExcelByImg(String[] headList, String[] fieldList, List<Map<String, Object>> dataList, Integer height, Integer width) throws Exception {
        File file = File.createTempFile("temp", ".xls");
        FileOutputStream fileOut = null;
        BufferedImage bufferImg = null;
        try {
            ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
            if (height == null) {
                height = 450;
            }
            if (width == null) {
                width = 1000;
            }
            HSSFWorkbook workbook = new HSSFWorkbook();
            HSSFCellStyle boderStyle = workbook.createCellStyle();
            boderStyle.setVerticalAlignment((short)1);
            boderStyle.setAlignment((short)2);
            HSSFSheet sheet = workbook.createSheet();
            HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
            HSSFRow row = sheet.createRow(0);
            HSSFCell anchor;
            for(int i = 0; i < headList.length; ++i) {
                row.setHeight(height.shortValue());
                sheet.setColumnWidth(i, width);
                anchor = row.createCell(i);
                anchor.setCellType(1);
                anchor.setCellValue(headList[i]);
                anchor.setCellStyle(boderStyle);
            }
            HSSFRow row_value = null;
            anchor = null;
            HSSFCell cell = null;
            if (dataList != null) {
                for(int n = 0; n < dataList.size(); ++n) {
                    row_value = sheet.createRow(n + 1);
                    row_value.setHeight(height.shortValue());
                    Map<String, Object> dataMap = (Map)dataList.get(n);
                    for(int i = 0; i < fieldList.length; ++i) {
                        sheet.setColumnWidth(i, width);
                        cell = row_value.createCell(i);
                        cell.setCellType(1);
                        Object value = dataMap.get(fieldList[i]);
                        if (value != null && "class java.io.File".equals(value.getClass().toString())) {
                            File file2 = (File)value;
                            if (file2 == null) {
                                cell.setCellValue("");
                            } else {
                                bufferImg = ImageIO.read(file2);
                                ImageIO.write(bufferImg, "jpg", byteArrayOut);
                                HSSFClientAnchor anchor1 = new HSSFClientAnchor(0, 0, 1023, 255, (short)i, n + 1, (short)i, n + 1);
                                anchor1.setAnchorType(0);
                                patriarch.createPicture(anchor1, workbook.addPicture(byteArrayOut.toByteArray(), 5));
                            }
                        } else {
                            cell.setCellValue(objToString(dataMap.get(fieldList[i])));
                            cell.setCellStyle(boderStyle);
                        }
                    }
                }
            }
            FileOutputStream fOut = new FileOutputStream(file);
            workbook.write(fOut);
            fOut.flush();
            fOut.close();
        } catch (Exception var25) {
            var25.printStackTrace();
        } finally {
            file.deleteOnExit();
        }
        return file;
    }
}
src/main/java/com/hx/util/FileUtils.java
@@ -7,6 +7,7 @@
import java.io.*;
import java.net.FileNameMap;
import java.net.URL;
import java.net.URLConnection;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
@@ -625,5 +626,41 @@
        return type;
    }
    public static File httpUrlFile(String netUrl) throws IOException {
        File file = File.createTempFile("temp123", ".xls");
        InputStream inStream = null;
        FileOutputStream os = null;
        try {
            file = File.createTempFile("net_url", ".jpg");
            URL urlfile = new URL(netUrl);
            inStream = urlfile.openStream();
            os = new FileOutputStream(file);
            byte[] buffer = new byte[8192];
            int bytesRead;
            while((bytesRead = inStream.read(buffer, 0, 8192)) != -1) {
                os.write(buffer, 0, bytesRead);
            }
        } catch (Exception var15) {
            var15.printStackTrace();
        } finally {
            try {
                if (null != os) {
                    os.close();
                }
                if (null != inStream) {
                    inStream.close();
                }
            } catch (Exception var14) {
                var14.printStackTrace();
            }
        }
        return file;
    }
}