如何使用最新的apache poi设置粗体字体?

2024-02-12

我用的是最新的apache poi

    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>3.17</version>
    </dependency>

但我无法设置粗体字体,下面的代码不起作用

font.setBold(true);

因为默认为 true

set a boolean value for the boldness to use. If omitted, the default value is true.

并且不存在setBoldWeight方法要么

那么如何在最新的apache poi中设置粗体粗细呢?


code

XSSFWorkbook wb = new XSSFWorkbook()
XSSFSheet sheet = wb.createSheet();
XSSFCell cell = sheet.createRow(0).createCell(0);
cell.setCellValue("hello world");

XSSFCellStyle cellStyle = wb.createCellStyle();
XSSFFont font = wb.createFont();
font.setBold(true);
cellStyle.setFont(font);
cell.setCellStyle(cellStyle);

try (FileOutputStream fos = new FileOutputStream("bold_test.xls")) {
    wb.write(fos);
}

effect

大胆的效果应该是这样的


Mac 数字无法解释<b val="true"/>正确。但这违反了规范。看xmlschema-2 布尔值 https://www.w3.org/TR/xmlschema-2/#boolean:“定义为·boolean·的数据类型实例可以具有以下合法文字{true, false, 1, 0}。”。

但它会解释<b />正确。这对于标记 a 也有效Font要大胆。这也意味着“如果省略,则默认值为 true”。如果b标签存在但没有值,也没有true nor false,那么它默认为true。设置不粗体b必须删除或设置标签<b val="false"/> or <b val="0"/>. There apache poi做到最好,最兼容。它删除了b tag.

同样是为了i滑石粉和s三振。

提示apache poi开发团队:考虑设置<b />, <i /> and <s />没有要设置的值true。这将是最兼容的。

Try:

import java.io.FileOutputStream;

import org.apache.poi.xssf.usermodel.*;

public class CreateExcelFontBold {

 public static void main(String[] args) throws Exception {

  XSSFWorkbook wb = new XSSFWorkbook();
  XSSFSheet sheet = wb.createSheet();
  XSSFCell cell = sheet.createRow(0).createCell(0);
  cell.setCellValue("hello world");

  XSSFCellStyle cellStyle = wb.createCellStyle();
  XSSFFont font = wb.createFont();
  //font.setBold(true); // <b val="true"/> does not work using Mac Numbers
  font.getCTFont().addNewB(); // maybe <b /> will work?
  cellStyle.setFont(font);
  cell.setCellStyle(cellStyle);

  try (FileOutputStream fos = new FileOutputStream("bold_test.xlsx")) {
   wb.write(fos);
  }

 }

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用最新的apache poi设置粗体字体? 的相关文章

  • 获取单元格值,就像它在 Excel 中的呈现方式一样

    我目前正在开发一个使用 Apache POI 读取 excel 文件的项目 我的任务似乎很简单 我只需要获取 Excel 文件中显示的单元格值 我知道根据单元格的单元格类型执行 switch 语句 但如果数据是这样的 9 000 00 PO
  • Apache POI autoSizeColumn() 无法正常工作[重复]

    这个问题在这里已经有答案了 我正在创建一个程序 使用 apache poi 将信息写入 Excel 文件 将所有数据输入文件后 我对文件的每一列调用 autoSizeColumn 方法 但它会将列的大小调整为最后输入的单元格的宽度 该宽度有
  • apache POI 中的自动换行(Excel)

    我有一个java程序 它将标头和数据作为输入并生成一个excel文件 然而 有时当标题值很长且列数较多时 我的 Excel 工作表往往会变得不必要的宽 由于标题的原因 我必须向右向下滚动才能看到尾部列的内容 有没有一种方法可以解决这个问题
  • 读取Excel文件时如何识别单元格为空白或为空或为空

    我读取了一个 Excel 文件来传递某些数据字段的输入 但是当我运行该程序时 某些单元格值返回为 null 某些单元格值返回为空白 实际上 当我打开 Excel 文件时 单元格中没有可用值 如何手动识别 Excel 单元格为空或空白 对于某
  • 如何从 Apache POI 知道文件是 .docx 还是 .doc 格式

    我知道我们可以通过扩展名或 mime 类型来完成它 我们是否有其他方法可以了解文件类型 无论是 docx 还是 doc 如果只是决定已知的文件集合是否是一个问题 doc or docx但没有相应地标记扩展名 您可以使用以下事实 docx文件
  • 如何从 Apache POI 获取脚注和段落?

    我有代码可以从 Apache POI 中的 doc 文件获取段落 但我也想获取脚注 另外 这是获取段落的唯一方法吗 到目前为止的代码 InputStream stream HWPFDocument document new HWPFDocu
  • 如何使用POI api读取java中的doc和docx文件

    我正在尝试读取 doc 和 docx 文件 这是代码 static String distination E static String docFileName Requirements docx public static void ma
  • 在 Apache POI 3.9 中,使用 autosizeColumn 同一列上的图像会被拉伸

    我在 Excel 工作表中有一张图像和图像下方的一些文本 当我将 autoSizeColumn 应用于文本呈现的列时 图像也会被拉伸 我还将锚类型设置为 2 但这并不能保护图像调整大小 我在这里发布一些示例代码 public static
  • 如何删除 POI 生成的 Excel 中的警告?

    I am using Apache POI for writing content into excel sheet after generating an excel in all the cells which ever cell ha
  • 使用 Tika jars 检查 Mimetype

    我正在开发标准的单独 Java 批处理过程 我正在尝试使用 Tika Jars 确定文件附件 mimetype 我正在使用 Tika 1 4 Jar 文件 我的代码看起来像 Parser parser new AutoDetectParse
  • 如何在 Apache POI 中获取 Excel 空白单元格值?

    我有一个巨大的 Excel 文件 其中包含大量列 如下所示 Column1 Column2 Column3 Column4 Column5 abc def ghi mno pqr 这是我编写的用于打印这些值的代码 try FileInput
  • Apache POI - JAVA - 迭代 Excel 中的列

    这里是java新手 我正在编写一个代码 该代码读取 Excel 文件 查看列中的单元格 然后编写如下表所示的内容 我有一个 Excel 文件 如下所示 col1 col2 col3 col4 row1 2 3 1 1 w row2 3 2
  • 如何为 Apache POI 3.8 创建工作 OSGI 包?

    我的目标是创建 Excel 2007 文档 XLSX 在 Eclipse RCP 环境中 Excel 2003 很简单 我不想将 POI jar 放在 lib 文件夹中 相反 我想使用目标定义中的工作 POI OSGI 包 到目前为止我所有
  • 如何使用 Java Apache POI 隐藏 Excel 工作表中以下未使用的行?

    我正在使用数据库中的数据填充模板 Excel 工作表 for Map
  • 设置 Apache POI 的路径

    我想创建 Excel 文件并使用 java 程序在该文件中写入数据 That is here http www techbrainwave com p 554我在 java 文件所在的位置提取了 Apache POI 并将该路径包含在路径变
  • apache poi cellIterator 跳过空白单元格,但不在第一行

    我正在创建一个 java 程序来读取 Excel 工作表并创建一个逗号分隔的文件 当我运行带有空白列的示例 Excel 文件时 第一行工作正常 但其余行会跳过空白单元格 我已阅读有关将空白单元格插入行所需的代码更改 但我的问题是为什么第一行
  • 如何找出导致 poi 损坏 xlsx / xlsm 文件的原因

    我遇到的问题是 Apache POI 仅通过读取和写入就 损坏 了 xlsm xlsx 文件 例如使用以下代码 public class Snippet public static void main String args throws
  • Poi:从 xlsm 打开 Excel 文件后将其保存为 xlsx

    我正在编写一个java程序 它打开一个用户定义的excel文件 用数据填充它 然后将其保存在用户指定的路径 文件名和扩展名下 即使输入文件是 xlsm 也应该可以声明输出保存为 xlsx 但实际上是不可能的 如果我尝试使用下面的代码 打开文
  • org.apache.poi 中的异常

    我试图编写一个可以读取和写入的程序 xlsx文件中 下面提供的代码旨在能够编写其第一个 Excel 程序 package excel reader import java io FileOutputStream import java io
  • 无法通过 Apache POI 3.6 检索数字格式和类别为货币的 Excel 单元格值

    您好 我正在解析 Excel 中具有特定格式的单元格 其中数据格式字符串为 0 我想在该单元格内获取值 但无法这样做 有人可以帮忙吗 目前使用此代码我得到的值为空白 但在Excel中该值是例如40 美元 for Row row sheet

随机推荐