การสร้าง Link แบบต่างๆ ใน Excel ด้วย Apache POI

นอกจากการสร้างข้อความแล้ว ใน Excel ด้วย Apache POI  ตัว Apache POI ยังสามารถเรียกใช้สร้าง Link แบบต่างๆได้อีกด้วย ยกตัวอย่างประเภท link เช่น :
  • Hyperlink.LINK_DOCUMENT : ลิงค์แบบอ้างอิง Sheet อื่นในไฟล์เดียวกัน
  • Hyperlink.LINK_EMAIL : ลิงค์แบบส่งเมล์
  • Hyperlink.LINK_FILE :  ลิงค์แบบอ้างอิงไฟล์ ซึ่งไฟล์ต้องอยู่ในโฟรเดอร์เดียวกัน
  • Hyperlink.LINK_URL : ลิงค์แบบอ้างอิง URL
จากโคดตัวอย่างเราจะสร้างไฟล์ .xlsx ดังนั้น ผู้เขียนจึงใช้ Package XSSF แต่หากใครจะสร้างไฟล์ .xls เฉยๆให้เรียกใช้ Package HSSF นะครับ

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

import java.io.FileOutputStream;

import org.apache.poi.common.usermodel.Hyperlink;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.CreationHelper;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFFont;
import org.apache.poi.xssf.usermodel.XSSFHyperlink;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class LinkExcel {
    public static void main(String[] args) {
        try {
            // สร้าง object ของ excel
            XSSFWorkbook wb = new XSSFWorkbook();
            // สร้าง sheet
            XSSFSheet spreadsheet = wb.createSheet("Font Excel");
            // สร้างแถวแรก การนับแถวเริ่มจาก 0,1,2....
            XSSFRow row = spreadsheet.createRow(0);
            CreationHelper createHelper = wb.getCreationHelper();
            
            // สร้าง style
            XSSFCellStyle hlinkstyle = wb.createCellStyle();
            XSSFFont hlinkfont = wb.createFont();
            hlinkfont.setUnderline(XSSFFont.U_SINGLE);
            hlinkfont.setColor(HSSFColor.BLUE.index);
            hlinkstyle.setFont(hlinkfont);
            
            //URL Link
            row = spreadsheet.createRow(1);
            XSSFCell cell = row.createCell((short) 1);
            cell.setCellValue("URL Link");
            XSSFHyperlink link = (XSSFHyperlink)createHelper.createHyperlink(Hyperlink.LINK_URL);
            link.setAddress("http://www.programminghunter.blogspot.com/" );
            cell.setHyperlink((XSSFHyperlink) link);
            cell.setCellStyle(hlinkstyle);
            
            //link แบบเชื่อมไฟล์ที่อยู่ในที่เดียวกัน
            row = spreadsheet.createRow(2);
            cell = row.createCell((short) 1);
            cell.setCellValue("File Link");
            link = (XSSFHyperlink)createHelper.createHyperlink(Hyperlink.LINK_URL);
            link.setAddress("CellStyleExcel.xlsx");
            cell.setHyperlink(link);
            cell.setCellStyle(hlinkstyle);
            
            //e-mail link
            row = spreadsheet.createRow(3);
            cell = row.createCell((short) 1);
            cell.setCellValue("Email Link");
            link = (XSSFHyperlink)createHelper.createHyperlink(Hyperlink.LINK_EMAIL);
            link.setAddress("mailto:example@email?subject=Hyperlink");
            cell.setHyperlink(link);
            cell.setCellStyle(hlinkstyle);
            
            // path ของไฟล์
            FileOutputStream out = new FileOutputStream("C:\\poi\\LinkExcel.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