Apache POI-XSSF 

 
 

โอเพ่นซอร์ส Java API สำหรับ Microsoft® ไฟล์ Excel XLSX

สร้าง แก้ไข และแปลงสเปรดชีต Excel XLSX เป็นรูปแบบไฟล์ CSV และ HTML ผ่าน Java Library

Apache POI-XSSF คืออะไร

Apache POI-XSSF เป็นการนำ Java ไปใช้ในรูปแบบไฟล์ Excel 2007 XLSX API มีขั้นตอนสำหรับการสร้าง อ่าน แก้ไข และเขียนไฟล์ Excel XLSX มีโครงสร้างระดับต่ำสำหรับผู้ที่มีความต้องการพิเศษ นอกจากนี้ยังมี API โมเดลเหตุการณ์สำหรับการเข้าถึงแบบอ่านอย่างเดียวที่มีประสิทธิภาพ ตลอดจน API โมเดลผู้ใช้แบบเต็มสำหรับการสร้าง อ่าน และแก้ไขไฟล์ XLSX Apache POI-XSSF ให้การสนับสนุนที่ดีเยี่ยมสำหรับคุณสมบัติ Excel เพิ่มเติม เช่น การทำงานกับชีต สูตร การสร้างสไตล์เซลล์โดยการเติมสีและเส้นขอบ แบบอักษร ส่วนหัวและส่วนท้าย รูปร่าง การตรวจสอบข้อมูล รูปภาพ ไฮเปอร์ลิงก์ และอื่นๆ อีกมากมาย

Previous Next

เริ่มต้นใช้งาน Apache POI XSSF

ก่อนอื่น คุณต้องมี Java Development Kit (JDK) ติดตั้งอยู่ในระบบของคุณ หากคุณมีอยู่แล้ว ให้ไปที่หน้าดาวน์โหลดของ Apache POI เพื่อรับเวอร์ชันเสถียรล่าสุดในไฟล์เก็บถาวร แยกเนื้อหาของไฟล์ ZIP ในไดเร็กทอรีใดๆ จากตำแหน่งที่ไลบรารีที่จำเป็นสามารถเชื่อมโยงกับโปรแกรม Java ของคุณได้ นั้นคือทั้งหมด!

การอ้างอิง Apache POI ในโปรเจ็กต์ Java ที่ใช้ Maven นั้นง่ายกว่า สิ่งที่คุณต้องมีคือเพิ่มการพึ่งพาต่อไปนี้ใน pom.xml ของคุณและให้ IDE ดึงข้อมูลและอ้างอิงไฟล์ Apache POI Jar

Apache POI Maven Dependency

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>4.1.0</version>
</dependency>

สร้างสเปรดชีต Excel ขนาดใหญ่โดยใช้ Java API

Apache POI XSSF ให้พื้นที่หน่วยความจำต่ำผ่าน SXSSF API สำหรับการจัดการการเขียนข้อมูลขนาดใหญ่ไปยังไฟล์ MS Excel วิธีนี้ช่วยให้เขียนไฟล์ขนาดใหญ่มากได้โดยไม่ใช้หน่วยความจำไม่เพียงพอ เนื่องจากมีเพียงส่วนที่กำหนดค่าได้ของแถวเท่านั้นที่จะเก็บไว้ในหน่วยความจำในแต่ละครั้ง POI-SXSSF มีหน่วยความจำเหลือน้อยโดยการจำกัดการเข้าถึงแถวที่อยู่ภายในหน้าต่างบานเลื่อน ในขณะที่ XSSF ให้การเข้าถึงแถวทั้งหมดในเอกสาร แถวที่เก่ากว่าซึ่งไม่อยู่ในหน้าต่างอีกต่อไปจะไม่สามารถเข้าถึงได้เนื่องจากถูกเขียนลงในดิสก์ คุณสามารถสร้างไฟล์ excel ขนาดใหญ่ใน java โดยใช้ขั้นตอนต่อไปนี้

สร้างไฟล์ Excel ขนาดใหญ่โดยใช้ Java

  1. สร้าง SXSSFWorkbook ใหม่และเก็บไว้ในหน่วยความจำ 100 แถว เกินแถวจะถูกล้างไปยังดิสก์
  2. สร้างแผ่นงานใหม่โดยใช้ createSheet() method
  3. แทรกข้อมูลใน 2,000 แถวและ 2,000 เซลล์โดยใช้ createRow(), createCell() และ setCellValue("ข้อมูลของคุณ") ภายในและวนซ้ำซ้อน
  4. บันทึกไฟล์โดยใช้ FileOutputStream() และส่งผ่านชื่อไฟล์เอาต์พุต
  5. เขียนไปยังไฟล์โดยใช้เมธอด SXSSFWorkbook.Write() และส่ง FileOutputStream เป็นพารามิเตอร์

สร้างไฟล์ Excel ขนาดใหญ่

// create a new SXSSFWorkbook
SXSSFWorkbook wb = new SXSSFWorkbook(100);
Sheet sh = wb.createSheet();
// insert 2000 rows
for(int rownum = 0; rownum < 2000; rownum++){
    Row row = sh.createRow(rownum);
    // insert data in 20000 cells
    for(int cellnum = 0; cellnum < 10; cellnum++){
    Cell cell = row.createCell(cellnum);
    cell.setCellValue("Row Number: "+ rownum + " Cell Number: "+ cellnum);
    }
}
// save file
FileOutputStream out = new FileOutputStream("LargeDcument.xlsx");
wb.write(out);
out.close();

Java APIs สำหรับการสร้างเวิร์กบุ๊ก Excel & การเพิ่มชีต

Apache POI XSSF ช่วยให้โปรแกรมเมอร์คอมพิวเตอร์สร้างเวิร์กบุ๊ก Excel ใหม่ในรูปแบบไฟล์ XLSX เมื่อนักพัฒนาสร้างเวิร์กบุ๊ก เวิร์กชีตจะถูกสร้างขึ้นจากอินสแตนซ์ที่มีอยู่ของเวิร์กบุ๊ก และแผ่นงานที่สร้างขึ้นใหม่จะถูกเพิ่มตามลำดับไปยังเวิร์กบุ๊กโดยอัตโนมัติ

สร้างสมุดงาน Excel และเพิ่มชีต

// create a new XLSX file
Workbook workbook = new XSSFWorkbook();
OutputStream outputStream = new FileOutputStream("CreateXlsx.xlsx");
// create a new sheet
Sheet sheet = workbook.createSheet("Apache POI XSSF");
// create a new sheet
Row row   = sheet.createRow(1);
// create a new cell
Cell cell  = row.createCell(1);
// set cell value
cell.setCellValue("File Format Developer Guide");
// save file
workbook.write(outputStream);

แปลงสเปรดชีต Excel เป็น CSV และรูปแบบไฟล์อื่นๆ

นักพัฒนา Java และโปรแกรมเมอร์สามารถแปลงสเปรดชีต Excel เป็นรูปแบบไฟล์ CSV ได้อย่างง่ายดายโดยใช้ Apache POI XSSF API CSV ย่อมาจาก Comma-Separated-Values และเป็นรูปแบบทั่วไปที่ใช้สำหรับการแลกเปลี่ยนข้อมูลระหว่างแอปพลิเคชันต่างๆ ประการแรก นักพัฒนาจำเป็นต้องอ่านไฟล์ XLS อินพุตโดยใช้ Apache POI XSSF API จากนั้นจึงเขียนข้อมูลที่แยกออกมาลงในไฟล์ CSV

แปลง XLSX เป็น CSV

// Open and existing XLSX file
FileInputStream fileInStream = new FileInputStream("LargeDocument.xlsx");
XSSFWorkbook workBook = new XSSFWorkbook(fileInStream);
XSSFSheet selSheet = workBook.getSheetAt(0);
// Loop through all the rows
Iterator rowIterator = selSheet.iterator();
while (rowIterator.hasNext()) {
    Row row = rowIterator.next();
    // Loop through all rows and add ","
    Iterator cellIterator = row.cellIterator();
    StringBuffer stringBuffer = new StringBuffer();
    while (cellIterator.hasNext()) {
    Cell cell = cellIterator.next();
    if (stringBuffer.length() != 0) {
        stringBuffer.append(",");
    }
    stringBuffer.append(cell.getStringCellValue());
    }
    System.out.println(stringBuffer.toString());
}
workBook.close();

การปรับปรุง XSSF สำหรับส่วนหัวและส่วนท้าย

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

การรวมเซลล์และการแยกข้อความภายในไฟล์ Excel XLSX

Apache POI XSSF ให้ความสามารถที่ช่วยให้โปรแกรมเมอร์ Java สามารถผสานหลายเซลล์เป็นเซลล์เดียวภายในสเปรดชีต Excel ได้รวมวิธีการที่รับดัชนีเซลล์เป็นอาร์กิวเมนต์และรวมเซลล์เป็นเซลล์ขนาดใหญ่เพียงเซลล์เดียว หนึ่งในคุณสมบัติที่มีความต้องการมากที่สุดคือความสามารถในการดึงข้อความจากไฟล์ XLSX และใช้งานได้ตามความต้องการของคุณ Apache POI ได้จัดเตรียมการแยกข้อความพื้นฐานสำหรับรูปแบบไฟล์ที่สนับสนุนโครงการทั้งหมด สำหรับความต้องการในการแยกข้อความขั้นสูง รวมถึงการแยก Rich Text (เช่น การจัดรูปแบบและการจัดรูปแบบ) พร้อมด้วยเอาต์พุต XML และ HTML Apache POI ทำงานอย่างใกล้ชิดกับ Apache Tika เพื่อส่งมอบ Tika Parsers ที่ขับเคลื่อนด้วย POI สำหรับรูปแบบไฟล์ที่สนับสนุนโปรเจ็กต์ทั้งหมด

 ไทย