本章介紹了如何為超連結新增到內容的單元格。超連結通常被用來存取任何網站的網址,電子郵件或外部檔案。
下面的程式碼演示如何建立單元格的超連結。
import java.io.File; 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.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class HyperlinkEX { public static void main(String[] args) throws Exception { XSSFWorkbook workbook = new XSSFWorkbook(); XSSFSheet spreadsheet = workbook .createSheet("Hyperlinks"); XSSFCell cell; CreationHelper createHelper = workbook .getCreationHelper(); XSSFCellStyle hlinkstyle = workbook.createCellStyle(); XSSFFont hlinkfont = workbook.createFont(); hlinkfont.setUnderline(XSSFFont.U_SINGLE); hlinkfont.setColor(HSSFColor.BLUE.index); hlinkstyle.setFont(hlinkfont); //URL Link cell = spreadsheet.createRow(1) .createCell((short) 1); cell.setCellValue("URL Link"); XSSFHyperlink link = (XSSFHyperlink)createHelper .createHyperlink(Hyperlink.LINK_URL); link.setAddress("https://www.tw511.com/" ); cell.setHyperlink((XSSFHyperlink) link); cell.setCellStyle(hlinkstyle); //Hyperlink to a file in the current directory cell = spreadsheet.createRow(2) .createCell((short) 1); cell.setCellValue("File Link"); link = (XSSFHyperlink)createHelper .createHyperlink(Hyperlink.LINK_FILE); link.setAddress("cellstyle.xlsx"); cell.setHyperlink(link); cell.setCellStyle(hlinkstyle); //e-mail link cell = spreadsheet.createRow(3) .createCell((short) 1); cell.setCellValue("Email Link"); link = (XSSFHyperlink)createHelper .createHyperlink(Hyperlink.LINK_EMAIL); link.setAddress( "mailto:[email protected]?" +"subject=Hyperlink"); cell.setHyperlink(link); cell.setCellStyle(hlinkstyle); FileOutputStream out = new FileOutputStream( new File("hyperlink.xlsx")); workbook.write(out); out.close(); System.out.println("hyperlink.xlsx written successfully"); } }
儲存上面的程式碼到檔案HyperlinkEX.java。並從命令提示字元編譯執行它如下。
$javac HyperlinkEX.java $java HyperlinkEX
它會生成一個名為hyperlink.xlsx在當前目錄中的Excel檔案並顯示在命令提示字元處輸出:
hyperlink.xlsx written successfully
hyperlink.xlsx檔案如下所示。