java easyexcel导出字段可选

使用easyexcel进行导出时根据前端传入的导出字段进行自定义导出

Controller层
@PostMapping("/export") public void export(@RequestBody DemoVo demolVo,HttpServletResponse response) throws IOException { demoService.exportExcel(demoVo,response); }

ServiceImpl实现层

--下载到浏览器
@Override
public void exportExcel(DemoVo demolVo, HttpServletResponse response) throws IOException {

    //数据查询返回封装list

     ObjectMapper mapper = new ObjectMapper();
	//JAVA类转化为String类型键值对
	String json = mapper.writeValueAsString(demolVo);
	//String转化为json
	JSONObject jsonObject= JSONObject.parseObject(json);
	//获得json所有键
	Set<String> keys = jsonObject.keySet();
	//遍历获取所有值(用户传入的字段),并存入集合
	Set<String> column = new HashSet<String>();
	for (String key : keys) {
		if (jsonObject.get(key) != null){
			column.add(jsonObject.get(key).toString());
		}
	}

	String fileName="output.xlsx";
	//设置响应头,文件名和文件类型
	response.setHeader("content-disposition","attachment;filename="+ URLEncoder.encode(fileName,"utf-8"));
	response.setContentType("application/octet-stream");
	//这里 需要指定写用哪个class去写,然后写到第一个sheet,名字为模板 然后文件流会自动关闭
	EasyExcel.write(response.getOutputStream(), DemoVo.class)
			.includeColumnFiledNames(column).sheet("模板")
			.doWrite(list);
	//刷新输出流并关闲
	response.flushBuffer();
}


--下载到指定目录
@Override
public void exportExcel(DemoVo demolVo) throws IOException {

    //数据查询返回封装list

     ObjectMapper mapper = new ObjectMapper();
	//JAVA类转化为String类型键值对
	String json = mapper.writeValueAsString(demolVo);
	//String转化为json
	JSONObject jsonObject= JSONObject.parseObject(json);
	//获得json所有键
	Set<String> keys = jsonObject.keySet();
	//遍历获取所有值(用户传入的字段),并存入集合
	Set<String> column = new HashSet<String>();
	for (String key : keys) {
		if (jsonObject.get(key) != null){
			column.add(jsonObject.get(key).toString());
		}
	}
   //这里 需要指定写用哪个class去写,然后写到第一个sheet,名字为模板 然后文件流会自动关闭
	File filepath=new File("E:/excel");
	if(!filepath.exists()){
		filepath.mkdirs();
	}
	EasyExcel.write("E:\\excel\\output.xlsx", DemoVo .class)
			.includeColumnFiledNames(column).sheet("模板")
			.doWrite(list);
   }
  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Java easyexcel 导出示例代码如下: ``` import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.metadata.Sheet; import com.alibaba.excel.metadata.Table; import com.alibaba.excel.support.ExcelTypeEnum; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.List; public class EasyExcelExportExample { public static void main(String[] args) throws Exception { // 准备数据 List<List<String>> data = new ArrayList<>(); for (int i = 0; i < 10; i++) { List<String> item = new ArrayList<>(); item.add("字符串" + i); item.add("数字" + i); data.add(item); } // 写入数据 FileOutputStream out = new FileOutputStream("easyexcel-export.xlsx"); ExcelWriter writer = new ExcelWriter(out, ExcelTypeEnum.XLSX); Sheet sheet1 = new Sheet(1, 0); sheet1.setSheetName("sheet1"); Table table1 = new Table(1); table1.setHead(new String[]{"字符串列", "数字列"}); writer.write0(data, sheet1, table1); writer.finish(); out.close(); } } ``` 这是一个简单的导出示例,其中写入了10行2列的数据,分别是 "字符串列" 和 "数字列"。示例代码会生成一个名为 "easyexcel-export.xlsx" 的 XLSX 格式的 Excel 文件。 ### 回答2: Java EasyExcel是一种用于Excel导入和导出的开源组件。它提供了简单易用的API,可以方便地创建、读取和写入Excel文件。 以下是一个使用Java EasyExcel进行导出的示例: 首先,需要在项目中引入Java EasyExcel的依赖。可以在项目的pom.xml文件中添加以下依赖配置: ``` <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.2.2</version> </dependency> ``` 接下来,创建一个POJO类来表示Excel中的每一行数据。假设我们要导出一个包含学生信息的Excel文件,可以创建一个Student类,包含姓名、年龄和性别等属性。 然后,在导出时,可以通过EasyExcel的API来创建一个ExcelWriter对象,并指定导出的文件名和sheet名称。 ``` ExcelWriter excelWriter = EasyExcel.write("output.xlsx").build(); ``` 接下来,可以通过ExcelWriter对象的sheet()方法创建一个Sheet对象,并指定该sheet的名称和对应的实体类。 ``` Sheet sheet = new Sheet(1, 0, Student.class); sheet.setSheetName("学生信息"); excelWriter.write(dataList, sheet); ``` 为了将数据写入Excel文件,需要将数据封装到List中,然后通过ExcelWriter对象的write()方法进行写入。 最后,调用ExcelWriter对象的finish()方法将数据写入到Excel文件中,并关闭ExcelWriter对象。 ``` excelWriter.finish(); ``` 以上就是一个使用Java EasyExcel进行导出的示例。通过简单的几步操作,就可以方便地将数据导出到Excel文件中。Java EasyExcel的易用性使得Excel导入和导出变得更加简单。 ### 回答3: Java easyexcel是一种用于导出Excel文件的简化工具,它可以帮助我们在Java程序中快速实现Excel文件的导出功能。 使用Java easyexcel导出示例的基本步骤如下: 1. 首先,我们需要在项目的依赖中添加Java easyexcel的相关库。可以通过Maven或者Gradle等工具来管理依赖。 2. 在Java程序中创建一个实体类,用来存储要导出到Excel中的数据。这个实体类需要使用注解来设置Excel的表头、列宽等属性。 3. 在Java程序中创建一个导出的方法,该方法使用Java easyexcel提供的API来生成Excel文件。我们可以在该方法中设置Excel的标题、表头、数据源等。 4. 调用导出方法,将Excel文件保存到指定的路径或者输出流中,即可完成Excel文件的导出过程。 下面是一个简单的Java easyexcel导出示例: ```java // 引入Java easyexcel的相关包 import com.alibaba.excel.EasyExcel; // 定义要导出到Excel中的数据实体类 public class Student { @ExcelProperty("姓名") private String name; @ExcelProperty("年龄") private int age; // 省略 getter 和 setter 方法 } // 导出方法 public void exportExcel(List<Student> data, String filePath) { // 设置Excel的标题和表头 List<List<String>> head = new ArrayList<List<String>>(); List<String> title = new ArrayList<String>(); title.add("姓名"); title.add("年龄"); head.add(title); // 将数据导出到Excel文件中 EasyExcel.write(filePath) // 设置导出文件路径 .head(head) // 设置表头 .sheet("Sheet1") // 设置Sheet名称 .doWrite(data); // 导出数据 System.out.println("Excel导出成功!"); } // 测试导出方法 public static void main(String[] args) { // 创建要导出的数据列表 List<Student> data = new ArrayList<Student>(); data.add(new Student("张三", 20)); data.add(new Student("李四", 22)); data.add(new Student("王五", 18)); // 调用导出方法 exportExcel(data, "D:/student.xlsx"); } ``` 通过上述示例,我们可以看到,使用Java easyexcel导出Excel文件非常简单且高效。只需要少量的代码,就可以实现复杂的Excel导出功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值