Heim > Java > javaLernprogramm > Hauptteil

Wie erstelle ich eine Excel-Datei mit SpringMVC?

不言
Freigeben: 2018-10-20 16:55:33
nach vorne
2645 Leute haben es durchsucht

Der Inhalt dieses Artikels befasst sich mit der Frage, wie man mit SpringMVC eine Excel-Datei generiert. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird Ihnen hilfreich sein.

Das Generieren einer Excel-Datei über Java oder das Importieren von Daten aus einer Excel-Datei erfordert die Verwendung eines POI-Pakets von Apache. Ich werde dieses Paket zuerst bereitstellen.

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.9</version>
</dependency>
Nach dem Login kopieren

Hier verwende ich SpringBoot, um ein Projekt zu erstellen. Ich werde nicht näher auf den Erstellungsprozess eingehen. Ich habe gerade damit begonnen, die Datenbankdaten in eine Excel-Datei zu importieren.
Ich habe offiziell mit dem Schreiben begonnen Demo
1. Erstellen Sie eine ExcelUtil-Klasse. Diese Klasse betreibt Excel mit zwei Hauptmethoden.

1-1.exportFile(): Exportieren Sie die Daten in eine Excel-Datei.
1-2.importFile(): Importieren Sie die Daten der angegebenen Datei

Die Struktur der Benutzertabelle ist wie folgt:

 id | username  | password  |
+----+-----------+-----------+
|  1 | yx12156ok | yx27787ok |
|  2 | yangxiang | 123456    |
|  3 | zhangsan  | 666666    |
|  4 | wangwu    | 999999    |
|  5 | xiaoming  | xiaoming
Nach dem Login kopieren
wird zunächst die Implementierung des ExcelUtil-Klassenimports veröffentlichen und diese im Folgenden ausführlich erläutern:
public class ExcelUtil {
    
    private 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);
}
}
Nach dem Login kopieren
Jetzt werde ich über die Funktionen mehrerer sprechen Methoden:

Konstruktormethode: Initialisieren Sie das Tabellenstrukturobjekt und erstellen Sie den Tabellenkopf.

genertedExportUsersFile-Methode: Generieren Sie Tabellendaten. Die Daten sollten zu diesem Zeitpunkt nicht tatsächlich geschrieben werden.
Schreibmethode: Schreiben Sie die generierte Tabelle in der File-Klasse, also der erstellten Datei;
getWorkbook-Methode: Ruft die Version 2003 oder 2007 des Excel-Objekts ab;
checkFileType-Methode: Ruft den Suffixnamen der Datei ab.

Das obige ist der detaillierte Inhalt vonWie erstelle ich eine Excel-Datei mit SpringMVC?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage