Maison >Java >javaDidacticiel >Comment exporter et fusionner des cellules Excel en Java

Comment exporter et fusionner des cellules Excel en Java

王林
王林avant
2023-05-10 17:16:064386parcourir

1. Préparation

Avant de commencer à implémenter l'export Excel, nous devons préparer les outils et environnements suivants :

1.Environnement JDK

3.Bibliothèque Apache POI

Apache POI est une bibliothèque Java qui peut être utilisée pour lire et écrire des fichiers aux formats Microsoft Office, notamment des fichiers Excel, Word et PowerPoint. Nous devons introduire la bibliothèque Apache POI dans le projet.

3.Modèle Excel

Le modèle Excel fait référence au style et au format du fichier Excel que nous souhaitons exporter, y compris les noms de colonnes, les hauteurs de lignes, les polices, les couleurs, etc. du tableau. Nous pouvons créer un modèle dans Excel, puis remplir le modèle avec des données. Cela garantit que le format et le style des fichiers Excel exportés sont cohérents.

2. Étapes de mise en œuvre

1. Créer un fichier Excel

Tout d'abord, nous devons créer un fichier Excel en Java. Les fichiers Excel peuvent être créés à l'aide de la classe Workbook de la bibliothèque Apache POI. La classe Workbook a deux classes d'implémentation : HSSFWorkbook et XSSFWorkbook. HSSFWorkbook est utilisé pour créer des fichiers Excel au format .xls et XSSFWorkbook est utilisé pour créer des fichiers Excel au format .xlsx. Nous pouvons choisir la classe d'implémentation appropriée en fonction de nos besoins.

Voici le code pour créer le fichier Excel :

// 创建工作簿
Workbook workbook = new HSSFWorkbook();
// 创建工作表
Sheet sheet = workbook.createSheet("Sheet1");

2. Remplissez les données du tableau

Ensuite, nous devons remplir les données dans le tableau. Les tableaux Excel peuvent être manipulés à l'aide des classes Row et Cell de la bibliothèque Apache POI. Row représente une ligne du tableau et Cell représente une cellule du tableau. Nous pouvons d'abord créer l'en-tête, puis remplir les données dans le tableau.

Voici le code pour remplir les données du tableau :

// 创建表头行
Row headerRow = sheet.createRow(0);
// 创建表头单元格
Cell headerCell1 = headerRow.createCell(0);
headerCell1.setCellValue("姓名");
Cell headerCell2 = headerRow.createCell(1);
headerCell2.setCellValue("年龄");

// 填充数据
List<User> userList = getUserList();
for (int i = 0; i < userList.size(); i++) {
    User user = userList.get(i);
    Row dataRow = sheet.createRow(i + 1);
    Cell dataCell1 = dataRow.createCell(0);
    dataCell1.setCellValue(user.getName());
    Cell dataCell2 = dataRow.createCell(1);
    dataCell2.setCellValue(user.getAge());
}

3. Fusionner les cellules

Si vous devez fusionner certaines cellules du tableau, vous pouvez utiliser la classe CellRangeAddress de la bibliothèque Apache POI pour y parvenir. CellRangeAddress représente la zone fusionnée de cellules, y compris la ligne de départ, la ligne de fin, la colonne de début et la colonne de fin. Nous pouvons créer un objet CellRangeAddress puis l'appliquer aux cellules du tableau.

Voici le code pour fusionner des cellules :

// 合并单元格
CellRangeAddress region = new CellRangeAddress(0, 0, 0, 1);
sheet.addMergedRegion(region);

4. Exporter le fichier Excel

Enfin, nous devons exporter le fichier Excel généré vers un serveur local ou local. Les fichiers Excel peuvent être générés sur le disque à l'aide de la classe FileOutputStream en Java.

Voici le code pour exporter le fichier Excel :

// 导出Excel文件
File file = new File("user.xls");
FileOutputStream fos = new FileOutputStream(file);
workbook.write(fos);
fos.close();

3. Code complet

public static void exportExcel() throws Exception {
    // 创建工作簿
    Workbook workbook = new HSSFWorkbook();
    // 创建工作表
    Sheet sheet = workbook.createSheet("Sheet1");

    // 创建表头行
    Row headerRow = sheet.createRow(0);
    // 创建表头单元格
    Cell headerCell1 = headerRow.createCell(0);
    headerCell1.setCellValue("姓名");
    Cell headerCell2 = headerRow.createCell(1);
    headerCell2.setCellValue("年龄");

    // 填充数据
    List<User> userList = getUserList();
    for (int i = 0; i < userList.size(); i++) {
        User user = userList.get(i);
        Row dataRow = sheet.createRow(i + 1);
        Cell dataCell1 = dataRow.createCell(0);
        dataCell1.setCellValue(user.getName());
        Cell dataCell2 = dataRow.createCell(1);
        dataCell2.setCellValue(user.getAge());
    }

    // 合并单元格
    CellRangeAddress region = new CellRangeAddress(0, 0, 0, 1);
    sheet.addMergedRegion(region);

    // 导出Excel文件
    File file = new File("user.xls");
    FileOutputStream fos = new FileOutputStream(file);
    workbook.write(fos);
    fos.close();
}

public static List<User> getUserList() {
    List<User> userList = new ArrayList<>();
    userList.add(new User("张三", 20));
    userList.add(new User("李四", 25));
    userList.add(new User("王五", 30));
    return userList;
}

public static class User {
    private String name;
    private int age;

    public User(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer