Java 基础教程

Java 面向对象

Java 高级教程

Java 笔记

Java FAQ

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/java-write-excel-file.html

java 将相关数据写入(导出)到 excel 表格文件

Java 笔记 Java 笔记


如何通过 java 将相关数据写入(导出)到 excel 表格文件,Apache Poi 给 Java 程序的 API 对 Microsoft Office 格式文件的读和写提供了最完整解决方案。除了 Apache Poi 工具外,还有一个相关工具是 JXL(Java Excel API),但不经常用。

引入 Apache Poi 包

第一步导入 Apache Poi jar 包。

maven 示例:

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>4.1.2</version>
</dependency>

gradle 示例:

compile group: 'org.apache.poi', name: 'poi', version: '4.1.2'

poi jar 包内部针对不同的功能,分成了几个子模块,具体结构如下:

  • HSSF - 提供读写 Microsoft Excel XLS 格式文件的功能。
  • XSSF - 提供读写 Microsoft Excel OOXML XLSX 格式文件的功能。
  • HWPF - 提供读写 Microsoft Word DOC 格式文件的功能。
  • HSLF - 提供读写 Microsoft PowerPoint 格式文件的功能。
  • HDGF - 提供读 Microsoft Visio 格式文件的功能。
  • HPBF - 提供读 Microsoft Publisher 格式文件的功能。
  • HSMF - 提供读 Microsoft Outlook 格式文件的功能。

转换成 excel 示例

我们这里主要是使用 HSSF 模块对数据进行处理,具体示例如下:

import org.apache.commons.collections4.CollectionUtils;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;

@Slf4j
public class Demo {

    private static void writeToExcel(List<String> list) throws IOException {

        if (CollectionUtils.isEmpty(list)) {
            return;
        }

        Workbook wb = new HSSFWorkbook();
        int oneSheetHeadRowNum = 1; //  头部非内容行数(如标题等)
        int oneSheetMaxRowNum = 65536;  //  excel 一个 sheet 最多支持行
        int oneSheetContentAvailableRowNum = oneSheetMaxRowNum - oneSheetHeadRowNum;

        int len = list.size();
        int needSheetSize = len / (oneSheetContentAvailableRowNum);

        log.info("needSheetSize:{}", needSheetSize);

        int j = 0;
        for (int i = 0; i <= needSheetSize; i++) {
            Sheet sheet = wb.createSheet("sheet " + i);

            Row row = sheet.createRow(0);
            row.createCell(0).setCellValue("搜索词");
            row.createCell(1).setCellValue("意图分类");
            row.createCell(2).setCellValue("详细信息");

            for (int k = 0; j < list.size() && k < oneSheetContentAvailableRowNum; k++, j++) {
                String string = list.get(j);
                Row contentRow = sheet.createRow(k + 1);
                contentRow.createCell(0).setCellValue(string);
                contentRow.createCell(1).setCellValue(string);
                contentRow.createCell(2).setCellValue(string);
            }
        }

        FileOutputStream fileOut = new FileOutputStream("intention_result.xls");
        wb.write(fileOut);
        fileOut.close();
    }
}

 

在Java中写入Excel数据有多种方式,下面将介绍使用两个流行的Java库来实现这个目标:ApachePOI和jExcelApi。以下是使 ...
###ApachePOIApachePOI是一个流行的Java库,用于操作MicrosoftOffice文件,包括Excel。步骤流程:添加 ...
在Java中实现Excel导出有多种方式,以下是几种常见的实现方式以及它们的步骤流程、依赖坐标和示例代码。添加依赖:*Maven:*Grad ...
以下是几种常见的实现方式,包括使用ApachePOI库、JExcelApi库和EasyExcel库。###示例代码##使用JExcelApi ...
在Java中导出Excel可以使用多种方式,包括使用原生Java库、使用第三方库,如ApachePOI、使用开源工具,如JExcelApi, ...