Apache POI - Fontes

Este capítulo explica como definir diferentes fontes, aplicar estilos e exibir texto em diferentes ângulos de direção em uma planilha do Excel.

Cada sistema vem com uma enorme coleção de fontes, como Arial, Impact, Times New Roman, etc. A coleção também pode ser atualizada com novas fontes, se necessário. Da mesma forma, existem vários estilos em que uma fonte pode ser exibida, por exemplo, negrito, itálico, sublinhado, tachado, etc.

Fontes e estilos de fonte

O código a seguir é usado para aplicar uma fonte e um estilo específicos ao conteúdo de uma célula.

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

Vamos salvar o código acima em um arquivo chamado FontStyle.java. Compile e execute-o a partir do prompt de comando da seguinte maneira.

$javac FontStyle.java
$java FontStyle

Ele gera um arquivo Excel chamado fontstyle.xlsx em seu diretório atual e exiba a seguinte saída no prompt de comando.

fontstyle.xlsx written successfully

o fontstyle.xlsx arquivo tem a seguinte aparência.

Direção do texto

Aqui você pode aprender como definir a direção do texto em diferentes ângulos. Normalmente, o conteúdo da célula é exibido horizontalmente, da esquerda para a direita e no ângulo 00; entretanto, você pode usar o código a seguir para girar a direção do texto, se necessário.

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

Mantenha o código acima em TextDirectin.java arquivo e, em seguida, compile e execute-o no prompt de comando da seguinte maneira.

$javac TextDirection.java
$java TextDirection

Ele irá compilar e executar para gerar um arquivo Excel chamado textdirection.xlsx em seu diretório atual e exiba a seguinte saída no prompt de comando.

textdirection.xlsx written successfully

o textdirection.xlsx arquivo tem a seguinte aparência.