java創(chuàng)建xls文件放到指定文件夾中實(shí)現(xiàn)方式
Java創(chuàng)建XLS文件并放到指定文件夾中
在Java中,我們可以使用Apache POI庫來創(chuàng)建和操作Excel文件。
下面將介紹如何使用Java創(chuàng)建一個(gè)XLS文件,并將其放置到指定的文件夾中。
步驟一:引入依賴
首先,在項(xiàng)目中引入Apache POI庫的依賴??梢栽贛aven或Gradle配置文件中添加以下依賴:
xmlCopy code
<!-- Apache POI依賴 -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>步驟二:創(chuàng)建XLS文件
下面是一個(gè)簡單的示例,展示了如何使用Java創(chuàng)建一個(gè)包含數(shù)據(jù)的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) {
// 創(chuàng)建工作簿
Workbook workbook = new XSSFWorkbook();
// 創(chuàng)建工作表
Sheet sheet = workbook.createSheet("Sheet1");
// 創(chuàng)建行,并設(shè)置行號
Row row = sheet.createRow(0);
// 創(chuàng)建單元格,并設(shè)置單元格內(nèi)容
Cell cell = row.createCell(0);
cell.setCellValue("Hello");
// 保存文件
try (FileOutputStream fileOut = new FileOutputStream("指定文件夾的路徑/文件名.xls")) {
workbook.write(fileOut);
System.out.println("XLS文件創(chuàng)建成功!");
} catch (IOException e) {
e.printStackTrace();
}
// 清理資源
workbook.close();
}
}在上述示例中,我們首先創(chuàng)建一個(gè)XSSFWorkbook實(shí)例表示工作簿,然后創(chuàng)建一個(gè)名稱為"Sheet1"的工作表。接下來,我們創(chuàng)建一個(gè)行并指定行號為0,創(chuàng)建一個(gè)單元格并設(shè)置其內(nèi)容為"Hello"。
最后,我們將工作簿保存到指定文件夾中的"文件名.xls"文件中。 請注意,需要將指定文件夾的路徑/文件名.xls替換為實(shí)際的文件夾路徑和文件名。
創(chuàng)建一個(gè)銷售訂單的Excel報(bào)表,并將其保存到指定文件夾中。
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) {
// 創(chuàng)建銷售訂單數(shù)據(jù)
List<SalesOrder> salesOrders = createSalesOrders();
// 創(chuàng)建工作簿
Workbook workbook = new XSSFWorkbook();
// 創(chuàng)建工作表
Sheet sheet = workbook.createSheet("銷售訂單");
// 創(chuàng)建表頭
Row headerRow = sheet.createRow(0);
headerRow.createCell(0).setCellValue("訂單編號");
headerRow.createCell(1).setCellValue("訂單日期");
headerRow.createCell(2).setCellValue("客戶姓名");
headerRow.createCell(3).setCellValue("產(chǎn)品名稱");
headerRow.createCell(4).setCellValue("數(shù)量");
headerRow.createCell(5).setCellValue("單價(jià)");
headerRow.createCell(6).setCellValue("總價(jià)");
// 填充數(shù)據(jù)
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("指定文件夾的路徑/銷售訂單報(bào)表.xlsx")) {
workbook.write(fileOut);
System.out.println("Excel文件創(chuàng)建成功!");
} catch (IOException e) {
e.printStackTrace();
}
// 清理資源
workbook.close();
}
private static List<SalesOrder> createSalesOrders() {
// 模擬一些銷售訂單數(shù)據(jù)
List<SalesOrder> salesOrders = new ArrayList<>();
salesOrders.add(new SalesOrder("20240001", "2024-02-01", "張三", "產(chǎn)品1", 10, 50.0));
salesOrders.add(new SalesOrder("20240002", "2024-02-02", "李四", "產(chǎn)品2", 5, 100.0));
salesOrders.add(new SalesOrder("20240003", "2024-02-03", "王五", "產(chǎn)品1", 8, 50.0));
salesOrders.add(new SalesOrder("20240004", "2024-02-04", "趙六", "產(chǎn)品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;
// 構(gòu)造函數(shù)、getter和setter省略
public double getTotalPrice() {
return quantity * unitPrice;
}
}
}在這個(gè)示例代碼中,我們創(chuàng)建了一個(gè)名為SalesOrder的內(nèi)部類,表示銷售訂單。然后,我們生成了一些示例數(shù)據(jù),并使用此數(shù)據(jù)填充Excel表格。最后,我們將工作簿保存到指定文件夾中的"銷售訂單報(bào)表.xlsx"文件中。請記得將指定文件夾的路徑/銷售訂單報(bào)表.xlsx替換為實(shí)際的文件夾路徑和文件名。
在Java中,操作Excel文件的接口主要有兩個(gè)主要的庫:Apache POI和JExcel API。這兩個(gè)庫都提供了豐富的功能來讀取、寫入和修改Excel文件。
1、Apache POI: Apache POI是一個(gè)流行的Java開源庫,用于處理Microsoft Office格式的文件,包括Excel(.xls和.xlsx文件)、Word和PowerPoint等。它提供了一組豐富的類和接口來讀寫和操作Excel文件。 Apache POI中用于處理Excel的主要接口有:
Workbook:表示整個(gè)Excel工作簿,可以包含多個(gè)Sheet。Sheet:表示Excel中的一個(gè)工作表。Row:表示Sheet中的一行數(shù)據(jù)。Cell:表示Row中的一個(gè)單元格。 使用Apache POI可以讀取、創(chuàng)建、修改和寫入Excel文件。通過Workbook對象可以創(chuàng)建新的Excel工作簿、打開現(xiàn)有的Excel文件,并獲取Sheet、Row和Cell對象以進(jìn)行讀寫操作。
2、JExcel API: JExcel API是另一個(gè)Java庫,用于處理Excel文件。它提供了一組簡單易用的類和接口,只支持舊版的Excel文件(.xls格式)。 JExcel API中用于處理Excel的主要接口有:
Workbook:表示整個(gè)Excel工作簿,可以包含多個(gè)Sheet。Sheet:表示Excel中的一個(gè)工作表。Cell:表示Sheet中的一個(gè)單元格。 JExcel API可以用于讀取、創(chuàng)建和修改Excel文件,但它不支持最新版本的Excel文件(.xlsx格式)。 根據(jù)實(shí)際需求和Excel文件的格式,你可以選擇使用Apache POI或JExcel API來處理Excel文件。如果需要處理較新的Excel文件格式(.xlsx),建議使用Apache POI。而如果只需要處理舊版的Excel文件(.xls),JExcel API可能是一個(gè)更簡單的選擇。
總結(jié)
通過使用Apache POI庫,我們可以很方便地在Java中創(chuàng)建和操作Excel文件。上述示例展示了創(chuàng)建一個(gè)簡單的XLS文件并將其放置到指定文件夾中的方法。你可以根據(jù)自己的需求進(jìn)一步擴(kuò)展和優(yōu)化這個(gè)例子。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Mybatis/MybatisPlus公共字段填充與配置邏輯刪除
MyBatis 和 MyBatis-Plus 都提供了相應(yīng)的機(jī)制來處理這些公共字段的填充和邏輯刪除,下面就來介紹一下,感興趣的可以了解一下2025-05-05
Java Persistence對象關(guān)系映射的基礎(chǔ)與應(yīng)用
這篇文章主要介紹了Java Persistence對象關(guān)系映射的基礎(chǔ)與應(yīng)用,Persistence API是Java平臺(tái)提供的對象關(guān)系映射標(biāo)準(zhǔn),旨在簡化關(guān)系型數(shù)據(jù)庫的持久化操作,它在Java EE和Java SE環(huán)境中均可使用,為開發(fā)者提供了統(tǒng)一的數(shù)據(jù)訪問方式,需要的朋友可以參考下2025-05-05
WebSocket獲取httpSession空指針異常的解決辦法
這篇文章主要介紹了在使用WebSocket實(shí)現(xiàn)p2p或一對多聊天功能時(shí),如何獲取HttpSession來獲取用戶信息,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2025-01-01
SpringBoot3.3.X整合Mybatis-Plus的實(shí)現(xiàn)示例
本文介紹了在Spring Boot 3.3.2中整合MyBatis-Plus 3.5.7,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-03-03
springboot使用redis緩存亂碼(key或者value亂碼)的解決
在通過springboot緩存數(shù)據(jù)的時(shí)候,發(fā)現(xiàn)key是一堆很不友好的東西,本文主要介紹了springboot使用redis緩存亂碼(key或者value亂碼)的解決,感興趣的可以了解一下2023-11-11
spring中的@Value讀取配置文件的細(xì)節(jié)處理過程
這篇文章主要介紹了spring中的@Value讀取配置文件的細(xì)節(jié)處理過程,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09

