Apache POI - Polices

Ce chapitre explique comment définir différentes polices, appliquer des styles et afficher du texte sous différents angles de direction dans une feuille de calcul Excel.

Chaque système est livré avec une énorme collection de polices telles que Arial, Impact, Times New Roman, etc. La collection peut également être mise à jour avec de nouvelles polices, si nécessaire. De même, il existe différents styles dans lesquels une police peut être affichée, par exemple, gras, italique, souligné, barré, etc.

Polices et styles de police

Le code suivant est utilisé pour appliquer une police et un style particuliers au contenu d'une cellule.

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

Sauvegardons le code ci-dessus dans un fichier nommé FontStyle.java. Compilez et exécutez-le à partir de l'invite de commande comme suit.

$javac FontStyle.java
$java FontStyle

Il génère un fichier Excel nommé fontstyle.xlsx dans votre répertoire actuel et affichez la sortie suivante sur l'invite de commande.

fontstyle.xlsx written successfully

le fontstyle.xlsx Le fichier se présente comme suit.

Direction du texte

Ici, vous pouvez apprendre à définir la direction du texte sous différents angles. Habituellement, le contenu des cellules est affiché horizontalement, de gauche à droite et à un angle 00; toutefois, vous pouvez utiliser le code suivant pour faire pivoter le sens du texte, si nécessaire.

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

Conservez le code ci-dessus dans TextDirectin.java fichier, puis compilez-le et exécutez-le à partir de l'invite de commande comme suit.

$javac TextDirection.java
$java TextDirection

Il se compilera et s'exécutera pour générer un fichier Excel nommé textdirection.xlsx dans votre répertoire actuel et affichez la sortie suivante sur l'invite de commande.

textdirection.xlsx written successfully

le textdirection.xlsx Le fichier se présente comme suit.