springboot结合easyexcel实现动态表头的实践
目录
- springboot结合easyexcel实现动态表头
- 实例如下
- 总结
springboot结合easyexcel实现动态表头
实例如下
javascriptpackage com.yili.survey.excel; import com.alibaba.excel.EasyExcel; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.test.context.SpringBootTest; import Java.util.ArrayList; import java.util.List; /** * 类名称:ExcelTest * 描述: * 创建人:赵英杰 * 创建时间:2023-09-05 11:17 */ @SpringBootTest(classes = ExcelTest.class) public class ExcelTest { @Value("${static.temp}") private String surveyLocalPath; @Test void test() { dynamicHeadwrite(); } /** * 数据 * * @return {@link List }<{@link List }<{@link String }>> * @author ZhaoYingJie * @date 2023-09-05 14:24:22 */ private List<List<String>> data() { List<List<String>> data = new ArrayList<>(); List<String> row1 = new ArrayList<>(); row1.add("喜欢吃苹果的数量"); row1.add("10"); row1.add("5"); data.add(row1); 编程客栈 List<String> row2 = new ArrayList<>(); row2.add("喜欢吃西瓜的数量"); row2.add("8"); row2.add("3"); data.add(row2); return data; } /** * 动态头,实时生编程客栈成头写入 * <p> * 思路是这样子的,先创建List<String>头格式的sheet仅仅写入头,然后通过table 不写入头的方式 去写入数据 * * <p> * 1. 创建excel对应的实体对象 编程 * <p> * 2. 然后写入table即可 */ private void dynamicHeadWrite() { // 获取保存路径 String path = surveyLocalPath; // 设置文件名 String fileName = path + "test_excel.xls"; EasyExcel.write(fileName) // 这里放入动态头 .head(head()).sheet("模板") // 当然这里数据也可以用 List<List<String>> 去传入 .doWrite(data()); } /** * 头 * * @return {@link List }<{@link List }<{@link String }>> * @author ZhaoYingJie * @date 2023-09-05 14:24:04 */ private List<List<String>> head() { List<List<String>> list = new ArrayList<>(); List<String> head0 = new ArrayList<>(); head0.add("Q1喜欢吃什么"); head0.add("Q1"); List<String> head1 = new ArrayList<>(); head1.add("Q1喜欢吃什么"); head1.add("Q1"); List<String> head2 = new ArrayList<String>(); head2.add("Q2喜欢吃什么_苹果"); hehttp://www.devze.comad2.add("Q2_1"); List<String> head3 = new ArrayList<String>(); head3.add("Q2喜欢吃什么_苹果"); head3.add("Q2_1"); List<String> head4 = new ArrayList<String>(); head4.add("Q2喜欢吃什么_西瓜"); head4.add("Q2_2"); List<String> head5 = new ArrayList<String>(); head5.add("Q2喜欢吃什么_西瓜"); head5.add("Q2_2"); list.add(head0); list.add(head1); list.add(head2); list.add(head3); list.add(head4); list.add(head5); return list; } }
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。
精彩评论