Java实现读取及生成Excel文件的方法

生成Excel文件可以使用Apache POI库,读取Excel文件可以使用JXL或者Apache POI库。

使用Apache POI进行Excel文件读取及生成

要使用Apache POI进行Excel文件处理,需要添加以下maven依赖:

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

读取Excel文件

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;

public class ExcelReader {

    public static void main(String[] args) throws Exception {
        String fileName = "data.xlsx";
        InputStream inputStream = new FileInputStream(fileName);
        Workbook workbook = WorkbookFactory.create(inputStream);

        Sheet sheet = workbook.getSheetAt(0);
        for (Row row : sheet) {
            for (Cell cell : row) {
                if (cell.getCellType() == CellType.NUMERIC) {
                    System.out.print(cell.getNumericCellValue() + "\t");
                } else if (cell.getCellType() == CellType.STRING) {
                    System.out.print(cell.getStringCellValue() + "\t");
                } else if (cell.getCellType() == CellType.BOOLEAN) {
                    System.out.print(cell.getBooleanCellValue() + "\t");
                }
            }
            System.out.println();
        }
        workbook.close();
    }
}

以上代码是一个简单的读取Excel文件的例子。首先,我们打开文件(即data.xlsx),并根据它创建一个WorkBook实例。sheet是Excel中的一个sheet,可以通过getIndexAt(index)方法获取。对于每行,我们使用一个for循环来遍历单元格。对于不同类型的单元格,我们使用不同的方法来获取其值。

生成Excel文件

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class ExcelWriter {

    public static void main(String[] args) throws FileNotFoundException, IOException {
        Workbook workbook = new XSSFWorkbook();
        Sheet sheet = workbook.createSheet("Sheet1");
        for (int i = 0; i < 10; i++) {
            Row row = sheet.createRow(i);
            for (int j = 0; j < 5; j++) {
                Cell cell = row.createCell(j);
                cell.setCellValue(i * j);
            }
        }
        FileOutputStream outputStream = new FileOutputStream("output.xlsx");
        workbook.write(outputStream);
        workbook.close();
    }
}

以上代码是一个生成Excel文件的例子。我们首先创建一个Workbook对象(这里使用XSSFWorkbook,因为我们将要生成一个.xlsx格式的Excel文件)。然后,在工作簿 创建一个新的Excel表单 Sheet。这里我们创建了一个名为"Sheet1"的表单。

之后我们使用循环创建行和列,并在每个单元格中设置一个值。最后,我们将Workbook写入磁盘中。我们使用FileOutputStream输出流将结果写入磁盘,其文件名为"output.xlsx"。

使用JXL进行Excel文件读取及生成

JXL是一个Java库,可用于处理.xls文件。要使用JXL库,必须下载并添加jxl.jar到你的类路径中。

读取Excel文件

import java.io.File;
import java.io.IOException;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

public class ExcelReader {
    public static void main(String[] args) throws BiffException, IOException {
        String fileName = "data.xls";
        File file = new File(fileName);

        Workbook workbook = Workbook.getWorkbook(file);
        Sheet sheet = workbook.getSheet(0);

        for (int i = 0; i < sheet.getRows(); i++) {
            for (int j = 0; j < sheet.getColumns(); j++) {
                Cell cell = sheet.getCell(j, i);
                System.out.print(cell.getContents() + "\t");
            }
            System.out.println();
        }
        workbook.close();
    }
}

以上代码读取一个.xls文件。我们创建一个Workbook实例,它将打开给定的.xls文件并将其读入内存。 .getSheet(0)表示Sheet的索引,0表示第一张Sheet。我们使用两个循环来遍历每个单元格。通过getCell(j,i)方法获取第i行,第j列的单元格。然后我们显示单元格的内容。

生成Excel文件

import java.io.File;
import java.io.IOException;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;

public class ExcelWriter {

    public static void main(String[] args) throws IOException, WriteException {
        WritableWorkbook workbook = Workbook.createWorkbook(new File("output.xls"));
        WritableSheet sheet = workbook.createSheet("Sheet1", 0);
        for (int i = 0; i < 10; i++) {
            for (int j = 0; j < 5; j++) {
                Label label = new Label(j, i, Integer.toString(i * j));
                sheet.addCell(label);
            }
        }
        workbook.write();
        workbook.close();
    }
}

以上代码实现了一个生成Excel文件的例子。我们首先创建一个WritableWorkbook对象,调用createWorkbook(..)方法创建一个新的workbook对象。然后我们使用createSheet(..)方法创建一个新的worksheet。之后使用嵌套的循环根据行和列创建单元格。调用write()方法将结果写入磁盘,最后关闭workbook对象。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java实现读取及生成Excel文件的方法 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • Spring Boot Admin 添加报警提醒和登录验证功能的具体实现

    下面我来详细讲解Spring Boot Admin添加报警提醒和登录验证功能的具体实现。 1. 添加报警提醒 1.1 准备工作 首先,我们需要准备以下工作: 安装 Spring Boot Admin 安装 Spring Boot Admin Server Extensions 扩展 1.2 添加报警提醒功能 在 spring-boot-admin-serve…

    Java 2023年6月3日
    00
  • java使用smartupload组件实现文件上传的方法

    Java使用SmartUpload组件实现文件上传的方法 SmartUpload组件是基于Java web应用程序文件上传的工具。它可以方便地将文件上传至服务器,同时具有上传进度条、支持多文件上传等功能,使用它可以为Java Web应用程序提供强大的文件上传功能。本文将详细讲解使用SmartUpload组件实现文件上传的方法。 前提 在开始之前,您需要准备好…

    Java 2023年6月2日
    00
  • Java常用排序算法及性能测试集合

    Java常用排序算法及性能测试集合 在本文中,我们将介绍Java的常用排序算法,包括它们的工作原理、实现代码和性能测试。排序算法是计算机科学中最基本的算法之一,因此深入了解排序算法有助于提高编程技能和算法能力。 常用排序算法 冒泡排序 冒泡排序是最简单,也是最容易理解的排序算法之一。它的基本思想是比较相邻的元素,如果顺序不对就交换它们,每一轮都可以将最大的值…

    Java 2023年5月19日
    00
  • Java实现抽奖算法的示例代码

    这里是Java实现抽奖算法的完整攻略: 抽奖算法简介 抽奖算法是一种随机算法,可以用于随机选出指定数量的中奖用户。在实现抽奖算法时,我们需要考虑到以下几个因素: 每个用户是否有资格参与抽奖; 不同中奖的概率; 中奖的数量。 根据这三个因素,我们可以实现不同策略的抽奖算法。下面的示例中,我们将实现两种常见的抽奖算法。 示例一:固定中奖数量,中奖率相等 如果我们…

    Java 2023年5月19日
    00
  • Tomcat CentOS安装实现过程图解

    下面我详细讲解一下“Tomcat CentOS安装实现过程图解”的完整攻略。 标题:Tomcat CentOS安装实现过程图解 1. 确保Java环境已经安装 在安装Tomcat之前,需要确保系统中已经安装了Java环境。可以通过以下命令检查是否已经安装了Java: java -version 如果终端输出了Java的版本信息,则说明Java已经安装成功。如…

    Java 2023年5月19日
    00
  • maven的安装配置以及在IDEA中的配置图文教程

    让我为你详细讲解Maven的安装配置以及在IDEA中的配置图文教程吧。 1. Maven的安装配置: 1.1 下载Maven 首先,你需要从Maven 官网下载最新的稳定版本。下载完成后,解压到任何你喜欢的目录中(比如:/usr/local/maven/) 1.2 配置环境变量 编辑环境变量配置文件(/etc/profile)并添加以下内容: export …

    Java 2023年5月20日
    00
  • SpringBoot应用的打包和发布实现

    打包和发布Spring Boot应用可以使用多种方法,下面是一些常见的方法: 方法一:使用Maven插件打包并上传到服务器 步骤一:使用Maven构建Spring Boot应用 在pom.xml文件中添加以下依赖: <!– 引入Spring Boot的pom依赖 –> <parent> <groupId>org.spr…

    Java 2023年5月19日
    00
  • SpringBoot 配置文件中配置的中文,程序读取出来是乱码的解决

    当我们在 SpringBoot 配置文件中配置中文时,有时程序运行后会读取出来乱码的情况。这是因为编码不一致或者文件格式问题导致的。下面给出两种解决方法。 解决方法一:设置文件编码 在配置文件中,可以添加如下配置来设置文件编码: spring: messages: encoding: UTF-8 这样,当程序读取配置文件时,会按照 UTF-8 编码格式进行解…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部