java创建xls文件放到指定文件夹中

举报
皮牙子抓饭 发表于 2024/02/19 15:06:28 2024/02/19
【摘要】 Java创建XLS文件并放到指定文件夹中在Java中,我们可以使用Apache POI库来创建和操作Excel文件。下面将介绍如何使用Java创建一个XLS文件,并将其放置到指定的文件夹中。步骤一:引入依赖首先,在项目中引入Apache POI库的依赖。可以在Maven或Gradle配置文件中添加以下依赖:xmlCopy code<!-- Apache POI依赖 --><dependenc...

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对象以进行读写操作。
  1. 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文件并将其放置到指定文件夹中的方法。你可以根据自己的需求进一步扩展和优化这个例子。希望这篇文章对你有所帮助!

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。