查看原文
其他

使用Java读取、编写、确认Excel文档

学研妹 Java学研大本营 2024-01-02

本文通过示例介绍Java和Apache POI库处理XLSX文件的方法,帮助你自动化Excel相关任务,并有效处理Java应用程序中的数据。

长按关注《Java学研大本营》

1 介绍

在当今数据驱动的世界中,通过编程方式处理Excel文件至关重要。Java提供了强大的库,能够轻松读取、写入和验证XLSX文件。在本文中,我们将使用Java代码示例探讨这种简化的方法来执行这些操作。

2 读取XLSX文件

在Java中读取XLSX文件的数据,我们可以使用Apache POI库。以下是一个简化的示例:

import org.apache.poi.ss.usermodel.*;
import java.io.FileInputStream;
import java.io.IOException;

public class XLSXReaderExample {
    public static void main(String[] args) {
        try {
            FileInputStream file = new FileInputStream("path/to/your/sample.xlsx");
            Workbook workbook = WorkbookFactory.create(file);
            Sheet sheet = workbook.getSheetAt(0);

            for (Row row : sheet) {
                for (Cell cell : row) {
                    String value = cell.toString();
                    System.out.print(value + "\t");
                }
                System.out.println();
            }

            workbook.close();
            file.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

本示例使用Apache POI从XLSX文件中读取数据。我们打开文件,创建一个Workbook对象,然后访问第一个工作表。接着,我们遍历每一行和每个单元格,获取单元格的值并打印出来。

3 写入XLSX文件

要将数据写入XLSX文件,我们可以继续使用Apache POI库。以下是一个简化的示例:

import org.apache.poi.ss.usermodel.*;
import java.io.FileOutputStream;
import java.io.IOException;

public class XLSXWriterExample {
    public static void main(String[] args) {
        try {
            Workbook workbook = WorkbookFactory.create(true);
            Sheet sheet = workbook.createSheet("Sheet1");

            Row headerRow = sheet.createRow(0);
            Cell headerCell = headerRow.createCell(0);
            headerCell.setCellValue("Name");

            Row dataRow = sheet.createRow(1);
            Cell dataCell = dataRow.createCell(0);
            dataCell.setCellValue("John Doe");

            FileOutputStream file = new FileOutputStream("path/to/your/output.xlsx");
            workbook.write(file);

            workbook.close();
            file.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在这个简化的示例中,我们创建一个新的Workbook,添加一个工作表,并创建一个标题行和数据行。我们为每一行设置单元格的值,并使用FileOutputStream将工作簿保存到文件中。

4 验证XLSX文件

验证XLSX文件可以确保数据满足特定的标准。以下是使用Apache POI执行验证的简化示例:

import org.apache.poi.ss.usermodel.*;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class XLSXValidationExample {
    public static void main(String[] args) {
        try {
            FileInputStream file = new FileInputStream("path/to/your/sample");
            Workbook workbook = WorkbookFactory.create(file);
            Sheet sheet = workbook.getSheetAt(0);

            DataValidationHelper validationHelper = sheet.getDataValidationHelper();
            DataValidationConstraint constraint = validationHelper.createNumericConstraint(
                    OperatorType.BETWEEN, "1""100");

            CellRangeAddressList addressList = new CellRangeAddressList(1, sheet.getLastRowNum(), 00);
            DataValidation validation = validationHelper.createValidation(constraint, addressList);
            validation.setShowErrorBox(true);
            sheet.addValidationData(validation);

            FileOutputStream output = new FileOutputStream("path/to/your/validated_data.xlsx");
            workbook.write(output);

            workbook.close();
            file.close();
            output.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在这个简化示例中,我们读取一个XLSX文件,创建一个数值约束以限制值在1到100之间,并将其应用于一组单元格。然后,我们将经过验证的数据保存到一个新的XLSX文件中。

5 总结

使用像Apache POI这样的库可以轻松处理Java中的XLSX文件。在本文中,我们探讨了一种简化的方法,使用Java代码示例来读取、写入和验证XLSX文件。通过利用这些功能,您可以自动化Excel相关任务并有效地处理Java应用程序中的数据。

推荐书单

《项目驱动零起点学Java》

《项目驱动零起点学Java》贯穿6个完整项目,经过作者多年教学经验提炼而得,项目从小到大、从短到长,可以让读者在练习项目的过程中,快速掌握一系列知识点。

作者是国内知名Java教学者和传播者,一路披荆斩棘,兢兢业业20余年。积累了丰富的“培”“训”经验,也产出了很多优质的教学理论。

Java语言经过数十年的发展,体系逐渐变得庞大而复杂,本书芟繁就简,提炼出了最为重要的知识点,可以让读者轻松上手。本书配套有专栏课程,课程中提供了扩展内容。

购买链接:https://item.jd.com/13607758.html

精彩回顾

一文搞懂Java正则表达式

一文搞懂Java中的lambda匿名函数

Java 21性能提升,会推出什么新特性?

超简单,实现Java线程池

超简单,精通Java异常处理

长按关注《Java学研大本营》
长按访问【IT今日热榜】,发现每日技术热点
继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存