本章介绍如何在Excel电子表格中设置不同的字体,应用样式以及以不同的方向角度显示文本。

每个系统都捆绑有大量字体,例如Arial,Impact,Times New Roman等。如果需要,还可以使用新字体来更新该集合。同样,有多种样式可以显示字体,例如,粗体,斜体,下划线,删除线等。

字体和字体样式

以下代码用于将特定的字体和样式应用于单元格的内容。

  1. import java.io.File;
  2. import java.io.FileOutputStream;
  3.  
  4. import org.apache.poi.hssf.util.HSSFColor;
  5. import org.apache.poi.xssf.usermodel.XSSFCell;
  6. import org.apache.poi.xssf.usermodel.XSSFCellStyle;
  7. import org.apache.poi.xssf.usermodel.XSSFFont;
  8. import org.apache.poi.xssf.usermodel.XSSFRow;
  9. import org.apache.poi.xssf.usermodel.XSSFSheet;
  10. import org.apache.poi.xssf.usermodel.XSSFWorkbook;
  11.  
  12. public class FontStyle {
  13. public static void main(String[] args)throws Exception {
  14. XSSFWorkbook workbook = new XSSFWorkbook();
  15. XSSFSheet spreadsheet = workbook.createSheet("Fontstyle");
  16. XSSFRow row = spreadsheet.createRow(2);
  17.  
  18. //Create a new font and alter it.
  19. XSSFFont font = workbook.createFont();
  20. font.setFontHeightInPoints((short) 30);
  21. font.setFontName("IMPACT");
  22. font.setItalic(true);
  23. font.setColor(HSSFColor.BRIGHT_GREEN.index);
  24.  
  25. //Set font into style
  26. XSSFCellStyle style = workbook.createCellStyle();
  27. style.setFont(font);
  28.  
  29. // Create a cell with a value and set style to it.
  30. XSSFCell cell = row.createCell(1);
  31. cell.setCellValue("Font Style");
  32. cell.setCellStyle(style);
  33.  
  34. FileOutputStream out = new FileOutputStream(new File("fontstyle.xlsx"));
  35. workbook.write(out);
  36. out.close();
  37. System.out.println("fontstyle.xlsx written successfully");
  38. }
  39. }

让我们将上面的代码保存在一个名为FontStyle.java的文件中。如下从命令提示符编译并执行它。

  1. $javac FontStyle.java
  2. $java FontStyle

它会在当前目录中生成一个名为fontstyle.xlsx的Excel文件,并在命令提示符下显示以下输出。

  1. fontstyle.xlsx written successfully

该fontstyle.xlsx文件如下所示。

fontstyle.jpeg

文字方向

在这里您可以学习如何设置不同角度的文本方向。通常,单元格内容是从左到右,以00角度水平显示的;但是,如果需要,您可以使用以下代码旋转文本方向。

  1. import java.io.File;
  2. import java.io.FileOutputStream;
  3.  
  4. import org.apache.poi.xssf.usermodel.XSSFCell;
  5. import org.apache.poi.xssf.usermodel.XSSFCellStyle;
  6. import org.apache.poi.xssf.usermodel.XSSFRow;
  7. import org.apache.poi.xssf.usermodel.XSSFSheet;
  8. import org.apache.poi.xssf.usermodel.XSSFWorkbook;
  9.  
  10. public class TextDirection {
  11. public static void main(String[] args)throws Exception {
  12. XSSFWorkbook workbook = new XSSFWorkbook();
  13. XSSFSheet spreadsheet = workbook.createSheet("Text direction");
  14. XSSFRow row = spreadsheet.createRow(2);
  15. XSSFCellStyle myStyle = workbook.createCellStyle();
  16. myStyle.setRotation((short) 0);
  17. XSSFCell cell = row.createCell(1);
  18. cell.setCellValue("0D angle");
  19. cell.setCellStyle(myStyle);
  20.  
  21. //30 degrees
  22. myStyle = workbook.createCellStyle();
  23. myStyle.setRotation((short) 30);
  24. cell = row.createCell(3);
  25. cell.setCellValue("30D angle");
  26. cell.setCellStyle(myStyle);
  27.  
  28. //90 degrees
  29. myStyle = workbook.createCellStyle();
  30. myStyle.setRotation((short) 90);
  31. cell = row.createCell(5);
  32. cell.setCellValue("90D angle");
  33. cell.setCellStyle(myStyle);
  34.  
  35. //120 degrees
  36. myStyle = workbook.createCellStyle();
  37. myStyle.setRotation((short) 120);
  38. cell = row.createCell(7);
  39. cell.setCellValue("120D angle");
  40. cell.setCellStyle(myStyle);
  41.  
  42. //270 degrees
  43. myStyle = workbook.createCellStyle();
  44. myStyle.setRotation((short) 270);
  45. cell = row.createCell(9);
  46. cell.setCellValue("270D angle");
  47. cell.setCellStyle(myStyle);
  48.  
  49. //360 degrees
  50. myStyle = workbook.createCellStyle();
  51. myStyle.setRotation((short) 360);
  52. cell = row.createCell(12);
  53. cell.setCellValue("360D angle");
  54. cell.setCellStyle(myStyle);
  55.  
  56. FileOutputStream out = new FileOutputStream(new File("textdirection.xlsx"));
  57. workbook.write(out);
  58. out.close();
  59. System.out.println("textdirection.xlsx written successfully");
  60. }
  61. }

将上面的代码保存在TextDirectin.java文件中,然后按照以下说明在命令提示符下进行编译和执行。

  1. $javac TextDirection.java
  2. $java TextDirection

它将编译并执行以在当前目录中生成一个名为textdirection.xlsx的Excel文件,并在命令提示符下显示以下输出。

  1. textdirection.xlsx written successfully

The textdirection.xlsx file looks as follows.

textdirection.jpeg