อ่านข้อมูลในไฟล์ Excel โดยใช้ Java

ไฟล์ MS Excel ส่วนใหญ่จะใช้เพื่อเก็บข้อมูลแบบตารางในรูปแบบของแผ่นงาน บ่อยครั้งที่ชุดข้อมูลขนาดใหญ่จะถูกเก็บไว้ในไฟล์ Excel ดังนั้น คุณอาจเจอสถานการณ์ที่ต้องอ่านและดึงข้อมูลจากแผ่นงานในไฟล์ Excel บทความนี้แสดงวิธีการอ่านไฟล์ Excel ใน Java เราจะสาธิตวิธีอ่านไฟล์ Excel ทั้งหมดหรือแผ่นงานเดียวโดยทางโปรแกรม

Java Library เพื่ออ่านไฟล์ Excel

ในการอ่านข้อมูลจากแผ่นงาน เราจะใช้ Aspose.Cells for Java เป็น API การจัดการสเปรดชีตเพื่อสร้างไฟล์ Excel ตั้งแต่เริ่มต้น นอกจากนี้ยังช่วยให้คุณอ่านและจัดการไฟล์ Excel ที่มีอยู่ได้อย่างง่ายดาย สามารถดาวน์โหลด API ได้จาก ส่วนการดาวน์โหลด หรือติดตั้งโดยเพิ่มการกำหนดค่า Maven ต่อไปนี้ใน pom.xml

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-cells</artifactId>
    <version>21.11</version>
</dependency>

อ่านไฟล์ Excel ใน Java

ในไฟล์ Excel ข้อมูลจะถูกจัดเก็บไว้ในเซลล์โดยแต่ละเซลล์จะถูกระบุด้วยชื่อ (A1, B3 เป็นต้น) หรือดัชนีแถวและคอลัมน์ เซลล์เหล่านี้รวมกันเป็นเวิร์กชีต และไฟล์ Excel จะประกอบด้วยเวิร์กชีตเดียวหรือหลายเวิร์กชีต แผ่นงานทั้งหมดมีอยู่ในสมุดงาน นี่คือภาพรวมโดยย่อของโครงสร้างของไฟล์ Excel ตอนนี้เรามาอ่านข้อมูลจากไฟล์ Excel กันต่อ

ต่อไปนี้เป็นขั้นตอนในการอ่านไฟล์ Excel และพิมพ์ข้อมูลโดยใช้ Java

  • โหลดไฟล์ Excel โดยใช้คลาส Workbook
  • สร้างวัตถุของคลาส WorksheetCollection และรับข้อมูลอ้างอิงของเวิร์กชีตโดยใช้เมธอด Workbook.getWorksheets()
  • เริ่มการวนซ้ำเพื่อไปยังเวิร์กชีตทั้งหมดในคอลเลกชันและในการวนซ้ำแต่ละครั้ง ให้ทำตามขั้นตอนต่อไปนี้:
    • รับการอ้างอิงแผ่นงานในวัตถุ แผ่นงาน
    • รับจำนวนแถวและคอลัมน์ข้อมูลในแผ่นงาน
    • เริ่มวนซ้ำสำหรับแถว
    • เริ่มการวนซ้ำที่ซ้อนกันสำหรับคอลัมน์
    • อ่านข้อมูลจากแต่ละเซลล์โดยใช้เมธอด Worksheet.getCells().get(rowIndex, columnIndex).getValue()

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการอ่านไฟล์ Excel ใน Java

// โหลดไฟล์ Excel
Workbook wb = new Workbook("workbook.xlsx");

// รับแผ่นงานทั้งหมด
WorksheetCollection collection = wb.getWorksheets();

// วนซ้ำแผ่นงานทั้งหมด
for (int worksheetIndex = 0; worksheetIndex < collection.getCount(); worksheetIndex++) {

  // รับแผ่นงานโดยใช้ดัชนี
  Worksheet worksheet = collection.get(worksheetIndex);

  // พิมพ์ชื่อแผ่นงาน
  System.out.print("Worksheet: " + worksheet.getName());

  // รับจำนวนแถวและคอลัมน์
  int rows = worksheet.getCells().getMaxDataRow();
  int cols = worksheet.getCells().getMaxDataColumn();

  // วนซ้ำเป็นแถว
 for (int i = 0; i < rows; i++) {

    // วนซ้ำแต่ละคอลัมน์ในแถวที่เลือก
   for (int j = 0; j < cols; j++) {
        // ค่าพริงเซลล์
	System.out.print(worksheet.getCells().get(i, j).getValue() + " | ");
    }
    // พิมพ์ตัวแบ่งบรรทัด
    System.out.println(" ");
  }
}

ต่อไปนี้เป็นผลลัพธ์ที่เราได้รับในคอนโซลหลังจากรันตัวอย่างโค้ดด้านบน

การอ่านข้อมูลในแผ่นงานของไฟล์ Excel ในภาษาจาวา

การอ่านไฟล์ Excel ใน Java

อ่านแผ่นงานเฉพาะใน Excel ใน Java

คุณยังสามารถอ่านเฉพาะเวิร์กชีตเฉพาะในไฟล์ Excel โดยทำตามขั้นตอนด้านล่าง

  • โหลดไฟล์ Excel โดยใช้คลาส Workbook
  • รับการอ้างอิงแผ่นงานที่ต้องการในวัตถุ Worksheet โดยใช้วิธี Workbook.getWorksheets().get(index)
  • รับจำนวนแถวและคอลัมน์ข้อมูลในแผ่นงาน
  • เริ่มวนซ้ำสำหรับแถว
  • เริ่มการวนซ้ำที่ซ้อนกันสำหรับคอลัมน์
  • อ่านข้อมูลจากแต่ละเซลล์โดยใช้เมธอด Worksheet.getCells().get(rowIndex, columnIndex).getValue()

ตัวอย่างรหัสต่อไปนี้แสดงวิธีการอ่านข้อมูลจากแผ่นงานเฉพาะใน Java

// โหลดไฟล์ Excel
Workbook wb = new Workbook("workbook.xlsx");

// รับการอ้างอิงของแผ่นงาน
Worksheet worksheet = wb.getWorksheets().get(0);

// รับจำนวนแถวและคอลัมน์
int rows = worksheet.getCells().getMaxDataRow();
int cols = worksheet.getCells().getMaxDataColumn();

// วนซ้ำเป็นแถว
for (int i = 0; i < rows; i++) {

  // วนซ้ำแต่ละคอลัมน์ในแถวที่เลือก
 for (int j = 0; j < cols; j++) {

    // พิมพ์ค่าเซลล์
    System.out.print(worksheet.getCells().get(i, j).getValue() + " | ");

  }
  // พิมพ์ตัวแบ่งบรรทัด
  System.out.println(" ");
}

รับใบอนุญาต API ฟรี

คุณสามารถใช้ Aspose.Cells for Java ได้โดยไม่มีข้อจำกัดในการประเมินโดยรับ ใบอนุญาตชั่วคราวฟรี

บทสรุป

ในบทความนี้ คุณได้เรียนรู้วิธีการอ่านไฟล์ Excel แบบไดนามิกใน Java ด้วยความช่วยเหลือของตัวอย่างโค้ด คุณได้เห็นวิธีการอ่านข้อมูลจากแผ่นงานเฉพาะหรือแผ่นงานทั้งหมดในสมุดงาน Excel นอกจากนี้ คุณสามารถสำรวจคุณสมบัติอื่นๆ ของ Aspose.Cells for Java โดยใช้ เอกสารประกอบ ในกรณีที่คุณมีข้อสงสัย โปรดแจ้งให้เราทราบผ่าน ฟอรัม ของเรา

ดูสิ่งนี้ด้วย