SpringBoot整合EasyExcel实现复杂Excel表格的导入&导出功能
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.read.listener.ReadListener;
import com.alibaba.excel.write.metadata.WriteSheet;
import org.springframework.web.multipart.MultipartFile;
import java.io.InputStream;
import java.util.List;
public class ExcelService {
// 导入数据
public void importData(MultipartFile file, Class<?> head, ReadListener readListener) {
try (InputStream in = file.getInputStream()) {
EasyExcel.read(in, head, readListener).sheet().doRead();
} catch (Exception e) {
e.printStackTrace();
// 异常处理逻辑
}
}
// 导出数据
public void exportData(List<?> data, Class<?> head, String fileName, HttpServletResponse response) {
try {
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
// 这里URLEncoder.encode可以防止中文文件名乱码
response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8") + ".xlsx");
EasyExcel.write(response.getOutputStream(), head).sheet("模板").doWrite(data);
} catch (Exception e) {
e.printStackTrace();
// 异常处理逻辑
}
}
}
这个简化版的代码示例展示了如何使用EasyExcel库在SpringBoot应用中导入和导出复杂的Excel数据。导入时,我们使用EasyExcel.read()
方法读取文件,并指定头类和监听器处理数据。导出时,我们使用EasyExcel.write()
方法写入响应流,并设置响应头以触发文件下载。注意,异常处理是必要的,以确保应用的健壮性。
评论已关闭