Apache POI字體/Fonts
本章介紹如何設置不同的字體,應用樣式,並在Excel電子表格中顯示的方向不同角度的文字。
每個係統附帶一個很大的字體如 Arial, Impact, Times New Roman,等字體集合也可以用新的字體更新,如果需要的話。同樣也有各種風格,其中的字體可以顯示,例如,粗體,斜體,下劃線,刪除線等。
字體和字體樣式
下麵的代碼用於特定的字體和樣式應用於一單元格的內容。
import java.io.File; import java.io.FileOutputStream; import org.apache.poi.hssf.util.HSSFColor; 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.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class FontStyle { public static void main(String[] args)throws Exception { XSSFWorkbook workbook = new XSSFWorkbook(); XSSFSheet spreadsheet = workbook.createSheet("Fontstyle"); XSSFRow row = spreadsheet.createRow(2); //Create a new font and alter it. XSSFFont font = workbook.createFont(); font.setFontHeightInPoints((short) 30); font.setFontName("IMPACT"); font.setItalic(true); font.setColor(HSSFColor.BRIGHT_GREEN.index); //Set font into style XSSFCellStyle style = workbook.createCellStyle(); style.setFont(font); // Create a cell with a value and set style to it. XSSFCell cell = row.createCell(1); cell.setCellValue("Font Style"); cell.setCellStyle(style); FileOutputStream out = new FileOutputStream( new File("fontstyle.xlsx")); workbook.write(out); out.close(); System.out.println( "fontstyle.xlsx written successfully"); } }
讓我們保存上麵的代碼在一個名為FontStyle.java文件。從命令提示符編譯並執行它如下。
$javac FontStyle.java $java FontStyle
它生成一個名為fontstyle.xlsx在當前目錄中的Excel文件並顯示在命令提示符處鍵入以下輸出。
fontstyle.xlsx written successfully
fontstyle.xlsx文件如下所示。
文字方向
在這裡,可以學習如何設置不同角度的文本方向。通常單元格的內容以水平方式顯示,由左到右,並在00角;但是可以使用下麵的代碼來旋轉文本的方向(如果需要的話)。
import java.io.File; import java.io.FileOutputStream; import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFCellStyle; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class TextDirection { public static void main(String[] args)throws Exception { XSSFWorkbook workbook = new XSSFWorkbook(); XSSFSheet spreadsheet = workbook.createSheet( "Text direction"); XSSFRow row = spreadsheet.createRow(2); XSSFCellStyle myStyle = workbook.createCellStyle(); myStyle.setRotation((short) 0); XSSFCell cell = row.createCell(1); cell.setCellValue("0D angle"); cell.setCellStyle(myStyle); //30 degrees myStyle=workbook.createCellStyle(); myStyle.setRotation((short) 30); cell = row.createCell(3); cell.setCellValue("30D angle"); cell.setCellStyle(myStyle); //90 degrees myStyle=workbook.createCellStyle(); myStyle.setRotation((short) 90); cell = row.createCell(5); cell.setCellValue("90D angle"); cell.setCellStyle(myStyle); //120 degrees myStyle=workbook.createCellStyle(); myStyle.setRotation((short) 120); cell = row.createCell(7); cell.setCellValue("120D angle"); cell.setCellStyle(myStyle); //270 degrees myStyle = workbook.createCellStyle(); myStyle.setRotation((short) 270); cell = row.createCell(9); cell.setCellValue("270D angle"); cell.setCellStyle(myStyle); //360 degrees myStyle=workbook.createCellStyle(); myStyle.setRotation((short) 360); cell = row.createCell(12); cell.setCellValue("360D angle"); cell.setCellStyle(myStyle); FileOutputStream out = new FileOutputStream( new File("textdirection.xlsx")); workbook.write(out); out.close(); System.out.println( "textdirection.xlsx written successfully"); } }
保持TextDirectin.java文件上麵的代碼,然後編譯並從命令提示符如下執行它。
$javac TextDirection.java $java TextDirection
這將編譯和執行,以生成一個名為textdirection.xlsx在當前目錄中的Excel文件並顯示在命令提示符處鍵入以下輸出。
textdirection.xlsx written successfully
textdirection.xlsx文件如下所示。