การแบ่งเซลล์(split) การล็อกแถวและคอลัมน์(Freeze) ใน Excel ด้วย Apache POI

ในการใช้งาน Excel นั้น บ่อยครั้งเราต้องมีการล็อกหรือการตรึงแถวและคอลัมน์เพื่อความสะดวกในการดูข้อมูลต่างๆใน Excel ดังนั้นวันนี้เราจะมาดูตัวอย่าง การแบ่งเซลล์(split) การล็อกแถวและคอลัมน์(Freeze) ใน Excel ด้วย Apache POI กันครับ

จากโคดตัวอย่างเราจะสร้างไฟล์ .xlsx ดังนั้น ผู้เขียนจึงใช้ Package XSSF แต่หากใครจะสร้างไฟล์ .xls เฉยๆให้เรียกใช้ Package HSSF นะครับ

ตัวอย่างโคด
package com.java.poi.excel;

import java.io.FileOutputStream;

import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class SplitAndFreezeExcel {
    public static void main(String[] args) {
        try {
            // สร้าง object ของ excel
            XSSFWorkbook wb = new XSSFWorkbook();
            // สร้าง sheet
            XSSFSheet sheet1 = wb.createSheet("Freeze just one row");
            XSSFSheet sheet2 = wb.createSheet("Freeze just one column");
            XSSFSheet sheet3 = wb.createSheet("Freeze the columns and rows");
            XSSFSheet sheet4 = wb.createSheet("Split Pane");

            /*  การแบ่งเซลล์ การล็อกแถวและคอลัมน์ ใน Excel การนับเริ่มจาก 0,1,2...
             *  createFreezePane(คอลัมน์ที่, แถวที่ , จำนวนคอลัมน์จากด้านซ้าย, จำนวนแถวจำกด้านบน)
             */
            
            // การล็อกหนึ่งแถว
            sheet1.createFreezePane(0, 1, 0, 1);
            // การล็อกหนึ่งคอลัมน์ 
            sheet2.createFreezePane(1, 0, 1, 0);
            // การล็อกสองแถวสองคอลัมน์ 
            sheet3.createFreezePane(2, 2);
            // การแบ่งเซลล์
            sheet4.createSplitPane(2000, 2000, 0, 0, XSSFSheet.PANE_LOWER_LEFT);
            
            // path ของไฟล์
            FileOutputStream out = new FileOutputStream("C:\\poi\\SplitAndFreezeExcel.xlsx");
            wb.write(out);
            wb.close();
            out.close();
            System.out.println("Excel created successfully");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

ไฟล์ที่ถูกสร้าง

 ผลลัพธ์ที่ได้ 
การล็อกหนึ่งแถว
 การล็อกหนึ่งคอลัมน์ 
 การล็อกสองแถวสองคอลัมน์ 
 การแบ่งเซลล์

About Nop

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.
    Blogger Comment

0 comments:

Post a Comment