• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

如何使用SpringMVC生成一个Excel文件?

java 搞代码 4年前 (2022-01-09) 12次浏览 已收录 0个评论

本篇文章给大家带来的内容是关于如何使用SpringMVC生成一个Excel文件?有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

通过Java来生成Excel文件或者导入一个Excel文件的数据都需要用到Apache的一个POI包,这里我就先把这个包提供出来。

<dependency>    <groupId>org.apache.poi</groupId>    <artifactId>poi-ooxml</artifactId>    <version>3.9</version></dependency>

这里我用的SpringBoot创建的项目,创建过程就不做累述了,直接操刀,开始把数据库的数据导成一个Excel文件
正式开始写这个Demo
1.创建一个ExcelUtil类,这个类就是对Excel进行操作,主要两个方法。

1-1.exportFile():把数据导出成一个Excel文件;
1-2.importFile():把指定文件的数据导入进来;

users表结构如下:

 id | username  | password  |+----+-----------+-----------+|  1 | yx12156ok | yx27787ok ||  2 | yangxiang | 123456    ||  3 | zhangsan  | 666666    ||  4 | wangwu    | 999999    ||  5 | xiaoming  | xiaoming

这里先贴出ExcelUtil类导入的实现,下面再做详细解释:

public class ExcelUtil {        pr<i>本文来源gaodai$ma#com搞$代*码网2</i>ivate final String excel2003 = "xls";    private final String excel2007 = "xlsx";        private Workbook workbook;    private Sheet sheet;    private Row row;    private Cell cell;    private CellStyle style;        private File file;        //初始化表结构和生成表头    public ExcelUtil(String[] titles,File file) {        this.file = file;        String fileName = this.file.getName();        this.workbook = getWorkbook(fileName);        if(workbook == null) return;        this.sheet = this.workbook.createSheet();        this.row = this.sheet.createRow(0);        this.style = this.workbook.createCellStyle();        this.style.setAlignment(CellStyle.ALIGN_CENTER);        for(int i = 0 ; i < titles.length ; i ++) {            cell = row.createCell(i);    //创建列            cell.setCellValue(titles[i]);    //赋值            cell.setCellStyle(style);    //样式        }    }        public void genertedExportUsersFile(List<Users> data) throws IOException {            //遍历每一行数据        for(int i = 0; i < data.size() ; i ++) {            int j = 0;            Users user = data.get(i);            row = sheet.createRow(i+1);            row.setRowStyle(style);            row.createCell(j++).setCellValue(Optional.of(user.getId()).orElse(null));            row.createCell(j++).setCellValue(Optional.of(user.getUsername()).orElse(null));            row.createCell(j++).setCellValue(Optional.of(user.getPassword()).orElse(null));        }    }        public void genertedExportStudentFile(List<Student> data) {        //遍历每一行数据         for(int i = 0,j = 0 ; i < data.size() ; i ++) {            Student student = data.get(i);            row = sheet.createRow(i+1);            row.setRowStyle(style);            row.createCell(j++).setCellValue(Optional.of(student.getId()).orElse(null));            row.createCell(j++).setCellValue(Optional.of(student.getUsername()).orElse(null));            row.createCell(j++).setCellValue(Optional.of(student.getPassword()).orElse(null));            row.createCell(j++).setCellValue(Optional.of(student.getStuname()).orElse(null));            row.createCell(j++).setCellValue(Optional.of(student.getStusex()).orElse(null));}}    public void write() throws IOException {    //把数据写入表格文件    OutputStream out = new FileOutputStream(this.file);    this.workbook.write(out);    out.close();}private Workbook getWorkbook(String fileName) {        //根据文件后缀名来获取Excel文件是2003版的还是2007版的        String type = checkFileType(fileName);        //根据版本的不同实例不同的对象        if(type.equals(this.excel2003))            return new HSSFWorkbook();        else if(type.equals(this.excel2007))            return new XSSFWorkbook();        return null;    }private String checkFileType(String fileName) {    return fileName.substring(fileName.lastIndexOf(".")+1);}}

现在我就来讲一讲几个方法的作用:
Constructor方法:对表结构对象进行初始化以及生产表头;
genertedExportUsersFile方法:生成表的数据,此时数据应该还未真正写入;
write方法:把生成的表写入传入的File类里,也就是创建的文件;
getWorkbook方法:获取2003版本的或者2007版本的Excel对象;
checkFileType方法:获取文件的后缀名。

以上就是如何使用SpringMVC生成一个Excel文件?的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:如何使用SpringMVC生成一个Excel文件?

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址