Учебники

Apache POI — Шрифты

В этой главе объясняется, как устанавливать разные шрифты, применять стили и отображать текст под разными углами в электронной таблице Excel.

Каждая система поставляется в комплекте с огромной коллекцией шрифтов, таких как Arial, Impact, Times New Roman и т. Д. При необходимости коллекция также может быть обновлена ​​новыми шрифтами. Точно так же существуют различные стили, в которых может отображаться шрифт, например, жирный, курсив, подчеркивание, вычеркивание и т. Д.

Шрифты и стили шрифтов

Следующий код используется для применения определенного шрифта и стиля к содержимому ячейки.

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

Давайте сохраним приведенный выше код в файле с именем FontStyle.java . Скомпилируйте и выполните его из командной строки следующим образом.

$javac FontStyle.java
$java FontStyle

Он генерирует файл Excel с именем fontstyle.xlsx в вашем текущем каталоге и отображает следующий вывод в командной строке.

fontstyle.xlsx written successfully

Файл fontstyle.xlsx выглядит следующим образом.

Стиль шрифта

Направление текста

Здесь вы можете узнать, как установить направление текста под разными углами. Обычно содержимое ячейки отображается горизонтально, слева направо и под углом 00; однако вы можете использовать следующий код для поворота направления текста, если это необходимо.

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

Сохраните приведенный выше код в файле TextDirectin.java , затем скомпилируйте и выполните его из командной строки следующим образом.

$javac TextDirection.java
$java TextDirection

Он скомпилируется и выполнится для создания файла Excel с именем textdirection.xlsx в вашем текущем каталоге и отобразит следующий вывод в командной строке.

textdirection.xlsx written successfully

Файл textdirection.xlsx выглядит следующим образом.