当前位置: 首页 > 知识库问答 >
问题:

如何在Apache POI中部分加粗段落?(Word文档)

夏意蕴
2023-03-14

我最近一直在使用Apache POI,我不知道如何设置这样的字符串:“你好,世界”。这就是我一直在尝试的

    XWPFDocument document = new XWPFDocument();
    String path = System.getProperty("user.home")+ "/Desktop/"+ array.get(0); //"array" is an ArrayList<String>
    path = path.replace("\\","/");
            
    XWPFParagraph paragraph = document.createParagraph();
    XWPFRun run = paragraph.createRun();
    String str1 = "Price: ";
    String str2 = array.get(1); // This needs to be Bold
    run.setFontSize(9);
    run.setFontFamily("Arial");
    run.setText(str1);
    run.setBold(true);
    run.setText(str2);
    paragraph.setSpacingBetween(1);
    paragraph.setAlignment(ParagraphAlignment.RIGHT);
    try {
        FileOutputStream output = new FileOutputStream(ruta);
        document.write(output);
        output.close();
        document.close();
    }catch(Exception e) {
        e.printStackTrace();
    }

我知道“run.setBold(true)”应该应用于整个paragraph,但这是我为word文档找到的唯一内容,所以我需要一些帮助来解决这个问题。谢谢你的帮助。

共有1个答案

万涵亮
2023-03-14

一般情况下,run就是run,段落就是段落。不同的东西。你可以把run设为单个单词、相邻单词或一整段。唯一重要的是a)如果你想“加粗”某事,那么b)你需要“加粗”相应的运行。

令人困惑的是,在POI中,你用“段落”创建了一个“run”:(

... 但是。。。

在同一段落中,可以有多个具有不同属性的运行。

例如:

  XWPFParagraph p = doc.createParagraph();
  XWPFRun r1 = p.createRun();
  r1.setText("Some Text");
  r1.setBold(true);
  r2 = p.createRun();
  r2.setText("Goodbye");

我还没有尝试过这段代码,但我相信“Some Text”将是粗体的,“再见”不会。你也可以尝试不同的语法,看看什么最适合你。

我希望这会有所帮助,祝你好运!

 类似资料:
  • 在使用ApachePOI写入word文档时,对于必须根据某个“计数”动态复制段落的位置,这些段落的标题必须按照章节顺序编号。假设它是word文档中的第7节,那么其中每个段落的标题应按顺序编号为7.1、7.2等。 尽管我看到了一些解决方案,其中考虑了word文档的xml,并使用了XWPFN编号。 还有其他更简单的方法吗? 或 如果我的word模板已经有了一个带有编号标题的段落,并且我必须多次复制相同

  • 我试图设置一些段落或文本在. docx文件使用Apache POI,我正在读取一个. docx文件作为模板从WEB-INF/资源/模板文件夹内我的战争文件,一旦读取,我想创建动态更多的表后,第9表用作模板,我可以添加更多的表格,但其他类型的内容(段落)被安排在文档的其他部分?有必要的形式来做这件事吗?

  • 我正在尝试创建一个包含多列的word文档。这样做(而不是使用表)的原因是,数据将跨越多个页面,在添加到新页面之前,我只能用列填充整个页面。 可以用ApachePOI实现吗?谢谢

  • 有没有一种方法可以将粗体样式应用于段落开头,直到一个分隔符(如冒号或连字符)?分隔符前的值可以是任意长度。 这样的字符串: 定义项目:项目的描述或定义...... 看起来像: 定义项目:项目的描述或定义......

  • 正如您在word文档中看到的,有许多带有要点的问题。现在,我正在尝试使用apache POI从文件中提取每个段落。这是我当前的代码 上述方法的问题在于它打印的是每一行而不是段落。此外,项目符号也从提取的字符串中删除。返回一个纯字符串。 谁能解释一下我做错了什么。也请建议如果你有一个更好的想法来解决它。

  • 问题描述 (Problem Description) 如何使用Java在word文档中编写段落。 解决方案 (Solution) 以下是使用Java在word文档中编写段落的程序。 import java.io.File; import java.io.FileOutputStream; import org.apache.poi.xwpf.usermodel.XWPFDocument; impo