目标:导出学生成绩表-含学生a 学生b两个sheet
1.//构造sheet中所需数据、sheet名--action中实现
private String templateFileName;//导出用的Excel模板名字,即我们定义的模板Excel名字
private String exportFileName;//导出时显示给客户端的Excel名字,即浏览器显示的Excel名字
public String exportMultiSheetExcel(){
this.exportFileName = "学生成绩表.xlsx";
this.templateFileName="StudentScore.xlsx";
HttpServletResponse response = ServletActionContext.getResponse();
String realpath = ServletActionContext.getServletContext().getRealPath("/");
FileInputStream fis = null;
try {
//读取路径下的Excel模板
fis = new FileInputStream(realpath + "/templates/excel/" + this.templateFileName);
} catch (IOException e) {
e.printStackTrace();
System.out.println("请求流获取错误,请求失败");
}
List<Student> student_list = new ArrayList<Student>();//数据源1
List<Student> student_list2 = new ArrayList<Student>();//数据源2
ArrayList<List> objects = new ArrayList<List>();//添加数据到objects中
objects.add(student_list);
objcects.add(student_list);
List<String> sheetNameList = new ArrayList<String>();//sheet名字列表,和objects大小相等,几个sheet数据源就有几个 //sheet名字
sheetNameList.add("学生a");
sheetNameList.add(学生b);
xxxService.createMultiSheetExcel(fis,response,exportFileName,sheetNameList,objects,"root",student_list2 );
}
2.//调用下载文件方法--service中实现
public void createMultiSheetExcel(FileInputStream inputStream, HttpServletResponse response, String filename, List<String> sheetNamelist,ArrayList<List> objects, String tagname,List<Student> student_list2 ){
OutputStream out = null;
try {
String contentType = "application/vnd.ms-excel";
response.setContentType(contentType);
filename = getDownloadFileName(filename);
&nb

这篇博客介绍了一个Java程序,用于导出包含多个sheet的Excel文件,如学生成绩表,分别命名为'学生a'和'学生b'。程序通过读取模板Excel,结合数据源动态生成含有不同数据的多个sheet,并提供了详细的方法解释和参数说明。
最低0.47元/天 解锁文章
5256

被折叠的 条评论
为什么被折叠?



