POI Apache - Caratteri

Questo capitolo spiega come impostare diversi tipi di carattere, applicare stili e visualizzare il testo in diverse angolazioni di direzione in un foglio di calcolo Excel.

Ogni sistema viene fornito in bundle con una vasta raccolta di caratteri come Arial, Impact, Times New Roman, ecc. La raccolta può anche essere aggiornata con nuovi caratteri, se necessario. Allo stesso modo ci sono vari stili in cui è possibile visualizzare un carattere, ad esempio grassetto, corsivo, sottolineato, barrato, ecc.

Caratteri e stili di carattere

Il codice seguente viene utilizzato per applicare un tipo di carattere e uno stile particolari al contenuto di una cella.

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

Salviamo il codice sopra in un file denominato FontStyle.java. Compilalo ed eseguilo dal prompt dei comandi come segue.

$javac FontStyle.java
$java FontStyle

Genera un file Excel denominato fontstyle.xlsx nella directory corrente e visualizzare il seguente output sul prompt dei comandi.

fontstyle.xlsx written successfully

Il fontstyle.xlsx il file ha il seguente aspetto.

Direzione del testo

Qui puoi imparare come impostare la direzione del testo in diverse angolazioni. Di solito il contenuto delle celle viene visualizzato orizzontalmente, da sinistra a destra e con un'angolazione 00; tuttavia è possibile utilizzare il codice seguente per ruotare la direzione del testo, se necessario.

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

Conserva il codice sopra in TextDirectin.java file, quindi compilarlo ed eseguirlo dal prompt dei comandi come segue.

$javac TextDirection.java
$java TextDirection

Verrà compilato ed eseguito per generare un file Excel denominato textdirection.xlsx nella directory corrente e visualizzare il seguente output sul prompt dei comandi.

textdirection.xlsx written successfully

Il textdirection.xlsx il file ha il seguente aspetto.