Apache POI - Phông chữ

Chương này giải thích cách đặt các phông chữ khác nhau, áp dụng kiểu và hiển thị văn bản theo các góc hướng khác nhau trong bảng tính Excel.

Mỗi hệ thống đều đi kèm với một bộ sưu tập phông chữ khổng lồ như Arial, Impact, Times New Roman, v.v. Bộ sưu tập cũng có thể được cập nhật với các phông chữ mới, nếu cần. Tương tự, có nhiều kiểu khác nhau trong đó phông chữ có thể được hiển thị, ví dụ: in đậm, in nghiêng, gạch dưới, gạch ngang, v.v.

Phông chữ và Kiểu phông chữ

Đoạn mã sau được sử dụng để áp dụng một phông chữ và kiểu cụ thể cho nội dung của một ô.

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");
   }
}

Hãy để chúng tôi lưu mã trên vào một tệp có tên FontStyle.java. Biên dịch và thực thi nó từ dấu nhắc lệnh như sau.

$javac FontStyle.java
$java FontStyle

Nó tạo ra một tệp Excel có tên fontstyle.xlsx trong thư mục hiện tại của bạn và hiển thị đầu ra sau trên dấu nhắc lệnh.

fontstyle.xlsx written successfully

Các fontstyle.xlsx tệp trông như sau.

Văn bản chỉ đạo

Tại đây, bạn có thể tìm hiểu cách đặt hướng văn bản theo các góc độ khác nhau. Thông thường nội dung ô được hiển thị theo chiều ngang, từ trái sang phải và ở góc 00; tuy nhiên, bạn có thể sử dụng mã sau để xoay hướng văn bản, nếu cần.

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");
   }
}

Giữ mã trên trong TextDirectin.java , sau đó biên dịch và thực thi nó từ dấu nhắc lệnh như sau.

$javac TextDirection.java
$java TextDirection

Nó sẽ biên dịch và thực thi để tạo một tệp Excel có tên textdirection.xlsx trong thư mục hiện tại của bạn và hiển thị đầu ra sau trên dấu nhắc lệnh.

textdirection.xlsx written successfully

Các textdirection.xlsx tệp trông như sau.