开源项目
知识点
相关文章
更多最近更新
更多POI Fonts 字体样式处理
2019-04-24 09:28|来源: 网路
本章介绍如何设置不同的字体,应用样式,并在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
它生成一个名为fontstyle.xlsx在当前目录中的Excel文件并显示在命令提示符处键入以下输出。
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
这将编译和执行,以生成一个名为textdirection.xlsx在当前目录中的Excel文件并显示在命令提示符处键入以下输出。
textdirection.xlsx written successfully
textdirection.xlsx文件如下所示。
相关问答
更多-
compass任务不负责将字体从app复制到dist 。 这是通过copy任务来处理的,通常看起来像这样: copy: { dist: { files: [{ expand: true, dot: true, cwd: '<%= yeoman.app %>', dest: '<%= yeoman.dist %>', src: [ '*.{ico,png,txt}', '.htaccess', ...
-
取决于您的imagemagick版本: convert -list type # for IM older than v6.3.5-7 convert -list font # for newer versions 输出格式也改变了... depending on your imagemagick version: convert -list type # for IM older than v6.3.5-7 convert -list font # for ...
-
Unicode和字体(Unicode and fonts)[2022-08-11]
只是为了确保:不要指望找到支持繁体中文,简体中文和日文的字体。 同一个Unicode代码点存在字形差异,因此原生用户会立即发现您的语言没有使用适当的字体。 对于Web应用程序,最好给出一个字体列表,并且在列表中,您需要一个典型的Windows字体,一个典型的Mac字体以及一个通用的字体(如“serif”)。 使用正确的lang标签标记html页面(或段落)将有助于一些(更智能的)浏览器在未安装特定的字体的情况下选择正确的字体。 Just to make sure: do not expect to find ... -
他们使用常规CSS。 只需使用您的常规字体系列: font-family: 'Open Sans', sans-serif; 现在你决定添加字体应该具有什么“重量” 半粗体 font-weight:600; 为大胆(700) font-weight:bold; 额外大胆(800) font-weight:800; 像这样它的回退证明,所以如果谷歌字体应该“失败”你的备份字体Arial / Helvetica(无衬线)使用与谷歌字体相同的权重。 很聪明:-) 请注意,不同的字体权重必须通过标题中的链接 ...
-
获得特定字体的字体样式(get fontstyles of particular font)[2022-08-04]
这些字体名称是从后面排版中可用的添加字体样式合成的,特别是在OpenType中添加的样式。 他们不完美地映射回旧的GDI风格。 您所看到的诀窍是将姓氏从Monotype修改为“Monotype Corsiva”,强烈暗示只有斜体(“草书”)样式可用。 相同类型的映射技巧用于各种添加的粗体样式和音高,名称如“Semibold”和“Condense”。 由于您只能使用FontStyle枚举来选择代码中的字体,因此使用FontFamily.IsStyleAvailable()方法检查映射的样式应该可以正常工作。 ... -
使用网络字体(Using web fonts)[2023-10-04]
不同的字体由不同的字体代工厂创建。 不是所有的字体都会在同一个地方找到。 由于字体许可,并非所有字体都可用作Web字体。 字体并不总是免费的,好的字体很少是免费的。 通常,您可以通过搜索字体名称和“@ font-face”来了解字体是否可用作网络字体,以及谁拥有该字体。 你绝对应该知道你将获得你将要使用的字体的位置。 如果你有三种来自三种不同字体服务的字体,那就很糟糕。 Firefox特别喜欢它,你会遇到一些非常不好的问题。 幸运的是,所有这些字体都可以通过字体松鼠获得 Bebas http://www.f ... -
图片标题POI WORD(Picture caption POI WORD)[2022-02-21]
关于在Word如何插入图表的工作,应该知道些什么: 当我们添加标题时 ,每个标题段落都包含一个序列字段{SEQ figure \* ARABIC} 。 名称“figure”是序列字段的名称。 然后,如果要创建一个数字表格, Word收集所有包含这样一个字段的段落,以从这些字段中构建数字表格。 到目前为止( apache poi版本3.17)不会为数字添加标题,也不会插入或创建数字表格,至少据我所知。 所以我们必须使用低级别的CTSimpleField来做到这一点 。 例: import java.io.In ... -
当您使用“EnumFontFamiliesEx”时,回调函数接收结构LOGFONT .... LOGFONT有两个变量lfWeight和lfItalic 。 使用这两个变量来检查枚举字体是否具有样式。 如果lfWeight值为0( FW_DONTCARE )并且lfItalic为false,则可以认为这没有任何风格。 或者,如果你想要非常具体,例如,你想只考虑字体只有粗体和常规,那么你可以验证,如果lfWeight值从{400(正常),600(大),700(大),800 (胆大)} 下面的链接有所有的细节。 ...
-
字符大小取决于所选的字体。 例如,用10pt Arial和10pt Times New Roman字体书写的相同短语的宽度是不同的。 因此,要计算列的宽度,apache-poi应该知道您正在使用的字体。 因此,您应该为要自动调整大小的每个单元格设置字体。 这是一个例子: CellStyle cellStyle = workbook.createCellStyle(); Font font = workbook.createFont(); font.setFontHeight(14.0); //some ad ...
-
我在系统中发现了一个较旧的库版本: bash-4.3$ find /usr -name "libfreetype.*" find: /usr/games/hide: Permission denied /usr/pkg/lib/libfreetype.la /usr/pkg/lib/libfreetype.a /usr/pkg/lib/libfreetype.so /usr/pkg/lib/libfreetype.so.6 /usr/pkg/lib/libfreetype.so.6.11.3 然后,我为最 ...