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日

相关文章

  • tomcat配置https的方法示例

    下面就为你详细讲解”Tomcat配置HTTPS的方法示例”: 简介 HTTP是一种不安全的通讯协议,通常情况下,我们都会采用HTTPS来进行网站的访问,以确保数据的安全性。Tomcat也可以进行HTTPS的配置,本篇文章就为大家提供Tomcat配置HTTPS的方法示例。 Tomcat配置HTTPS的方法 1. 生成SSL证书 在Tomcat配置HTTPS之前…

    Java 2023年5月19日
    00
  • java贪吃蛇游戏编写代码

    让我们来详细讲解一下“Java贪吃蛇游戏编写代码”的完整攻略。下面按照步骤逐一说明: 开发环境 首先要确保有Java的开发环境,最好使用较新版的Java进行开发。另外,需要使用到Java的图形界面库awt和swing。可以使用Java自带的集成开发环境Eclipse或者IntellJ IDEA等。 项目结构 在Eclipse中可以创建一个新的Java项目,在…

    Java 2023年5月30日
    00
  • Android基于API的Tabs3实现仿优酷tabhost效果实例

    下面我将详细介绍“Android基于API的Tabs3实现仿优酷tabhost效果实例”的完整攻略,包括具体的实现过程和两个示例说明。 1. 实现基本思路 实现仿优酷tabhost效果的方案主要涉及两个部分:一是使用API实现Tabs3页面,二是为每个页面添加Fragment布局。 具体步骤: 在布局中添加ViewPager和TabLayout控件 创建Fr…

    Java 2023年5月26日
    00
  • Java实现文件上传的方法

    下面是Java实现文件上传的方法的完整攻略。 概述 在一些Web应用中,我们需要实现文件上传功能。Java 语言提供了多种方法,使得文件上传变得简单、易于管理。本文将简述Java实现文件上传的方法,包括基础知识、实现示例、注意事项等。 基础知识 在 Java 中,实现文件上传通常需要完成以下几个步骤: 在前端页面中添加一个文件上传的表单元素,以便用户上传需要…

    Java 2023年5月19日
    00
  • JSP 中Hibernate实现映射枚举类型

    这里是详细的“JSP 中Hibernate实现映射枚举类型”的完整攻略。 1. 简介 在Java Web应用程序中,使用Hibernate框架是一种方便和高效管理数据库的方式。Hibernate在数据库实体对象和Java对象之间提供了映射,从而使得使用Java对象来操作数据库变得十分方便。本文将重点介绍如何在JSP中使用Hibernate实现枚举类型的映射。…

    Java 2023年5月20日
    00
  • Android自定义View仿腾讯TIM下拉刷新View

    对于Android自定义View仿腾讯TIM下拉刷新View的完整攻略,可以分为以下几个步骤: 1. 确定需求,分析原理 在开始编写自定义下拉刷新View之前,我们需要先确定具体的需求,从而了解需要实现的功能点。对于仿腾讯TIM下拉刷新View,需要实现以下功能: 下拉刷新时,显示header并执行刷新操作 上拉加载更多时,显示footer并执行加载更多操作…

    Java 2023年5月26日
    00
  • 利用SpringDataJPA开启审计功能,自动保存操作人操作时间

    利用SpringDataJPA开启审计功能可以方便地对每次数据操作进行记录,包括操作人、操作时间等信息。这样做有利于数据追溯和安全性控制。下面是实现该功能的步骤: 添加必要的依赖 在项目的pom.xml文件中添加以下依赖: <dependency> <groupId>org.springframework.boot</group…

    Java 2023年5月20日
    00
  • 基于Java回顾之JDBC的使用详解

    基于Java回顾之JDBC的使用详解 1. 什么是JDBC JDBC是Java DataBase Connectivity的缩写,它是用于Java语言操作关系型数据库的应用程序接口(API)。JDBC提供了一种标准的方法,用于连接和操作各种类型的关系型数据库。 JDBC规范定义了一套Java类库,通过这些类库,我们可以在Java程序中使用SQL命令执行各种数…

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