EasyExcel заполнить данныеEasyExcel заполнить поток данных скачать easyexcel заполнить Excel скачать easyexcel заполнить

EasyExcel заполнить данныеEasyExcel заполнить поток данных скачать easyexcel заполнить Excel скачать easyexcel заполнить

1. Заполняем данные и выводим файл в браузер

Официальный адрес сайта

Демо на официальном сайте заполняет файл файлом, а в реальных нуждах чаще всего используется заполнение данных и вывод Excel в браузер.

Для заполнения шаблона используется официальный файл Excel: Адрес:https://github.com/alibaba/easyexcel/blob/master/easyexcel-test/src/test/resources/fill/complex.xlsx

Пример кода взят из официального 复杂填充преобразования кода, адрес официального сайта:https://github.com/alibaba/easyexcel/blob/master/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/demo/fill/FillTest.java

	/*
	* 构建数据
	*/
    private List<FillData> data() {
    
    
        List<FillData> list = ListUtils.newArrayList();
        for (int i = 0; i < 10; i++) {
    
    
            FillData fillData = new FillData();
            list.add(fillData);
            fillData.setName("张三");
            fillData.setNumber(5.2);
            fillData.setDate(new Date());
        }
        return list;
    }

	public void complex(HttpServletRequest request, HttpServletResponse response) throws ServiceException, IOException {
    
    
		
		// 模版所在路径,将官方文件下载下来
		File template= "F:\\complexFiles\\complex.xlsx";
		
		// EasyExcel没有提供填充数据 Excel流下载。需要自己实现
		
		// 创建一个 字节数组输出流,填充数据到字节数组流,然后在输出给浏览器
		ByteArrayOutputStream os = new ByteArrayOutputStream();
	
        
		try (ExcelWriter excelWriter = EasyExcel.write(os).withTemplate(template).build()) {
    
    
			
			WriteSheet writeSheet = EasyExcel.writerSheet().build();
			
			// 填充列表数据
			excelWriter.fill(data(), writeSheet);
			
			// 写入list之前的数据
            Map<String, Object> map = MapUtils.newHashMap();
            map.put("date", "2019年10月9日13:28:28");
            map.put("total", 1000);
			
			excelWriter.fill(map, writeSheet);
			
			// 刷新
			excelWriter.finish();
			
			// 直接输出文件
//            response.getOutputStream().write(os.toByteArray());
//            response.getOutputStream().flush();
			
			BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(response.getOutputStream(), 8152);
			bufferedOutputStream.write(os.toByteArray());
			bufferedOutputStream.close();
			
			// 或者使用GZIP压缩输出,但是需要服务器支持
//            OutputStream outputStream = response.getOutputStream();
//            GZIPOutputStream gzipOutputStream = new GZIPOutputStream(outputStream);
//            // 或者
//            DeflaterOutputStream deflaterOutputStream = new DeflaterOutputStream(outputStream);
//            deflaterOutputStream.write(os.toByteArray());
//            deflaterOutputStream.finish();
//            deflaterOutputStream.close();
		
		}
		
	}

Supongo que te gusta

Origin blog.csdn.net/qq_40739917/article/details/132762801
Recomendado
Clasificación