java创建xls文件放到指定文件夹中实现方式

 更新时间:2025年11月22日 11:57:59   作者:牛肉胡辣汤  
本文介绍了如何在Java中使用ApachePOI库创建和操作Excel文件,重点是如何创建一个XLS文件并将其放置到指定文件夹中

Java创建XLS文件并放到指定文件夹中

在Java中,我们可以使用Apache POI库来创建和操作Excel文件。

下面将介绍如何使用Java创建一个XLS文件,并将其放置到指定的文件夹中。

步骤一:引入依赖

首先,在项目中引入Apache POI库的依赖。可以在Maven或Gradle配置文件中添加以下依赖:

xmlCopy code
<!-- Apache POI依赖 -->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>4.1.2</version>
</dependency>

步骤二:创建XLS文件

下面是一个简单的示例,展示了如何使用Java创建一个包含数据的XLS文件:

javaCopy code
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileOutputStream;
import java.io.IOException;
public class CreateExcelFile {
    public static void main(String[] args) {
        // 创建工作簿
        Workbook workbook = new XSSFWorkbook();
        // 创建工作表
        Sheet sheet = workbook.createSheet("Sheet1");
        // 创建行,并设置行号
        Row row = sheet.createRow(0);
        // 创建单元格,并设置单元格内容
        Cell cell = row.createCell(0);
        cell.setCellValue("Hello");
        // 保存文件
        try (FileOutputStream fileOut = new FileOutputStream("指定文件夹的路径/文件名.xls")) {
            workbook.write(fileOut);
            System.out.println("XLS文件创建成功!");
        } catch (IOException e) {
            e.printStackTrace();
        }
        // 清理资源
        workbook.close();
    }
}

在上述示例中,我们首先创建一个XSSFWorkbook实例表示工作簿,然后创建一个名称为"Sheet1"的工作表。接下来,我们创建一个行并指定行号为0,创建一个单元格并设置其内容为"Hello"。

最后,我们将工作簿保存到指定文件夹中的"文件名.xls"文件中。 请注意,需要将指定文件夹的路径/文件名.xls替换为实际的文件夹路径和文件名。

创建一个销售订单的Excel报表,并将其保存到指定文件夹中。

javaCopy code
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class CreateSalesOrderExcel {
    public static void main(String[] args) {
        // 创建销售订单数据
        List<SalesOrder> salesOrders = createSalesOrders();
        
        // 创建工作簿
        Workbook workbook = new XSSFWorkbook();
        
        // 创建工作表
        Sheet sheet = workbook.createSheet("销售订单");
        
        // 创建表头
        Row headerRow = sheet.createRow(0);
        headerRow.createCell(0).setCellValue("订单编号");
        headerRow.createCell(1).setCellValue("订单日期");
        headerRow.createCell(2).setCellValue("客户姓名");
        headerRow.createCell(3).setCellValue("产品名称");
        headerRow.createCell(4).setCellValue("数量");
        headerRow.createCell(5).setCellValue("单价");
        headerRow.createCell(6).setCellValue("总价");
        
        // 填充数据
        int rowNumber = 1;
        for (SalesOrder salesOrder : salesOrders) {
            Row row = sheet.createRow(rowNumber++);
            row.createCell(0).setCellValue(salesOrder.getOrderNumber());
            row.createCell(1).setCellValue(salesOrder.getOrderDate());
            row.createCell(2).setCellValue(salesOrder.getCustomerName());
            row.createCell(3).setCellValue(salesOrder.getProductName());
            row.createCell(4).setCellValue(salesOrder.getQuantity());
            row.createCell(5).setCellValue(salesOrder.getUnitPrice());
            row.createCell(6).setCellValue(salesOrder.getTotalPrice());
        }
        
        // 保存文件
        try (FileOutputStream fileOut = new FileOutputStream("指定文件夹的路径/销售订单报表.xlsx")) {
            workbook.write(fileOut);
            System.out.println("Excel文件创建成功!");
        } catch (IOException e) {
            e.printStackTrace();
        }
        
        // 清理资源
        workbook.close();
    }
    
    private static List<SalesOrder> createSalesOrders() {
        // 模拟一些销售订单数据
        List<SalesOrder> salesOrders = new ArrayList<>();
        salesOrders.add(new SalesOrder("20240001", "2024-02-01", "张三", "产品1", 10, 50.0));
        salesOrders.add(new SalesOrder("20240002", "2024-02-02", "李四", "产品2", 5, 100.0));
        salesOrders.add(new SalesOrder("20240003", "2024-02-03", "王五", "产品1", 8, 50.0));
        salesOrders.add(new SalesOrder("20240004", "2024-02-04", "赵六", "产品3", 2, 150.0));
        return salesOrders;
    }
    
    // 销售订单类
    private static class SalesOrder {
        private String orderNumber;
        private String orderDate;
        private String customerName;
        private String productName;
        private int quantity;
        private double unitPrice;
        
        // 构造函数、getter和setter省略
        
        public double getTotalPrice() {
            return quantity * unitPrice;
        }
    }
}

在这个示例代码中,我们创建了一个名为SalesOrder的内部类,表示销售订单。然后,我们生成了一些示例数据,并使用此数据填充Excel表格。最后,我们将工作簿保存到指定文件夹中的"销售订单报表.xlsx"文件中。请记得将指定文件夹的路径/销售订单报表.xlsx替换为实际的文件夹路径和文件名。

在Java中,操作Excel文件的接口主要有两个主要的库:Apache POI和JExcel API。这两个库都提供了丰富的功能来读取、写入和修改Excel文件。

1、Apache POI: Apache POI是一个流行的Java开源库,用于处理Microsoft Office格式的文件,包括Excel(.xls和.xlsx文件)、Word和PowerPoint等。它提供了一组丰富的类和接口来读写和操作Excel文件。 Apache POI中用于处理Excel的主要接口有:

  • Workbook:表示整个Excel工作簿,可以包含多个Sheet。
  • Sheet:表示Excel中的一个工作表。
  • Row:表示Sheet中的一行数据。
  • Cell:表示Row中的一个单元格。 使用Apache POI可以读取、创建、修改和写入Excel文件。通过Workbook对象可以创建新的Excel工作簿、打开现有的Excel文件,并获取Sheet、Row和Cell对象以进行读写操作。

2、JExcel API: JExcel API是另一个Java库,用于处理Excel文件。它提供了一组简单易用的类和接口,只支持旧版的Excel文件(.xls格式)。 JExcel API中用于处理Excel的主要接口有:

  • Workbook:表示整个Excel工作簿,可以包含多个Sheet。
  • Sheet:表示Excel中的一个工作表。
  • Cell:表示Sheet中的一个单元格。 JExcel API可以用于读取、创建和修改Excel文件,但它不支持最新版本的Excel文件(.xlsx格式)。 根据实际需求和Excel文件的格式,你可以选择使用Apache POI或JExcel API来处理Excel文件。如果需要处理较新的Excel文件格式(.xlsx),建议使用Apache POI。而如果只需要处理旧版的Excel文件(.xls),JExcel API可能是一个更简单的选择。

总结

通过使用Apache POI库,我们可以很方便地在Java中创建和操作Excel文件。上述示例展示了创建一个简单的XLS文件并将其放置到指定文件夹中的方法。你可以根据自己的需求进一步扩展和优化这个例子。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Redis分布式锁介绍与使用

    Redis分布式锁介绍与使用

    服务器集群项目中的锁是无法精准的锁住线程资源的,于是我们就是需要使用分布式锁,分布式锁该如何使用又有什么注意点呢?就让我们进入接下来的学习
    2022-09-09
  • Spring Cloud OpenFeign模版化客户端搭建过程

    Spring Cloud OpenFeign模版化客户端搭建过程

    OpenFeign是一个显示声明式的WebService客户端。使用OpenFeign能让编写Web Service客户端更加简单,这篇文章主要介绍了Spring Cloud OpenFeign模版化客户端,需要的朋友可以参考下
    2022-06-06
  • 解决java-jar报错:xxx.jar 中没有主清单属性的方法

    解决java-jar报错:xxx.jar 中没有主清单属性的方法

    在使用 java -jar xxx.jar 命令运行 Java 应用程序时,遇到了以下错误:xxx.jar 中没有主清单属性,这个错误表示 JAR 文件缺少必要的启动信息,本文将介绍该错误的原因以及如何通过修改 pom.xml 文件来解决,需要的朋友可以参考下
    2024-11-11
  • SpringBoot使用OpenCV示例总结

    SpringBoot使用OpenCV示例总结

    这篇文章主要介绍了SpringBoot使用OpenCV示例总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • Mybatis-plus和Mybatis出现版本不兼容的问题解决

    Mybatis-plus和Mybatis出现版本不兼容的问题解决

    MyBatis-Plus 与 MyBatis 之间的兼容性问题通常是由于版本不匹配引起的,本文主要介绍了Mybatis-plus和Mybatis出现版本不兼容的问题解决,具有一定的参考价值,感兴趣的可以了解一下
    2024-08-08
  • Spring Boot分层架构详解之从Controller到Service再到Mapper的完整流程(用户管理系统为例)

    Spring Boot分层架构详解之从Controller到Service再到Mapper的完整流程(用户管理

    本文将以一个实际案例(用户管理系统)为例,详细解析 Spring Boot 中 Controller、POJO、Mapper、Service、ServiceImpl 等层的关系,并展示从前端发送请求到后端处理的完整流程,感兴趣的朋友跟随小编一起看看吧
    2025-09-09
  • 基于Scala和Java方法的相互调用

    基于Scala和Java方法的相互调用

    这篇文章主要介绍了Scala和Java方法的相互调用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • Java算法篇之BF与KMP算法深入讲解

    Java算法篇之BF与KMP算法深入讲解

    BF算法和KMP算法都是串的模式匹配算法,但是它们的时间复杂度不同,下面这篇文章主要介绍了Java算法篇之BF与KMP算法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-07-07
  • Junit单元测试关于@Transactional注解引起的事务回滚问题

    Junit单元测试关于@Transactional注解引起的事务回滚问题

    这篇文章主要介绍了Junit单元测试关于@Transactional注解引起的事务回滚问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • Spring Boot集成Sorl搜索客户端的实现代码

    Spring Boot集成Sorl搜索客户端的实现代码

    本篇文章主要介绍了Spring Boot集成Sorl搜索客户端的实现代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11

最新评论