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 файл выглядит следующим образом.