Apache POI - Czcionki

W tym rozdziale wyjaśniono, jak ustawić różne czcionki, stosować style i wyświetlać tekst pod różnymi kątami w arkuszu kalkulacyjnym programu Excel.

Każdy system jest dostarczany z ogromną kolekcją czcionek, takich jak Arial, Impact, Times New Roman itp. W razie potrzeby kolekcję można również zaktualizować o nowe czcionki. Podobnie istnieją różne style, w których można wyświetlać czcionkę, na przykład pogrubienie, kursywa, podkreślenie, przekreślenie itp.

Czcionki i style czcionek

Poniższy kod służy do zastosowania określonej czcionki i stylu do zawartości komórki.

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

Zapiszmy powyższy kod w pliku o nazwie FontStyle.java. Skompiluj i uruchom go z wiersza polecenia w następujący sposób.

$javac FontStyle.java
$java FontStyle

Generuje plik Excel o nazwie fontstyle.xlsx w bieżącym katalogu i wyświetl następujące dane wyjściowe w wierszu polecenia.

fontstyle.xlsx written successfully

Plik fontstyle.xlsx plik wygląda następująco.

Kierunek tekstu

Tutaj możesz dowiedzieć się, jak ustawić kierunek tekstu pod różnymi kątami. Zwykle zawartość komórki jest wyświetlana poziomo, od lewej do prawej i pod kątem 00; jednak w razie potrzeby możesz użyć następującego kodu, aby obrócić kierunek tekstu.

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

Zachowaj powyższy kod w formacie TextDirectin.java plik, a następnie skompiluj go i uruchom z wiersza polecenia w następujący sposób.

$javac TextDirection.java
$java TextDirection

Skompiluje się i uruchomi, aby wygenerować plik Excel o nazwie textdirection.xlsx w bieżącym katalogu i wyświetl następujące dane wyjściowe w wierszu polecenia.

textdirection.xlsx written successfully

Plik textdirection.xlsx plik wygląda następująco.