gpt4 book ai didi

java - 从文本框中获取 Apache POI XSSFRichTextString

转载 作者:行者123 更新时间:2023-12-02 02:10:12 24 4
gpt4 key购买 nike

如何使用 POI 从 Excel 电子表格中的文本框获取 XSSFRichTextString?

重载了 setText() 方法来设置 String 或 XSSFRichTextString,但 getText() 方法仅返回 String。

我的方法如下:-

  1. 仅更改文本框中的文本,但保持格式不变。我希望获取字符串并简单地更改文本,但 XSSFRichTextString 中似乎没有 setText 方法。看来您在构造函数中设置文本,然后使用方法应用格式。使用此功能确实会将文本放入文本框中,但会丢失所有格式。

  2. 提取整个 XSSFRichTextString、提取格式、使用新文本创建新的 RTS 并应用格式。问题是,虽然有一个 setFont(Font object) 方法,但 getFont() 仅返回一个简短的内容,因此我似乎无法获取 Font 对象并更改它。

3 我的最后一个选择是在文本框中设置纯文本,然后以编程方式设置所有字体和格式元素,但这意味着将格式隐藏在 Java 代码中,这意味着如果用户需要调整格式则需要重新编码仅使用 Excel。

有什么建议吗?

最佳答案

将一些评论提升为答案

您无法从 Excel 文本框中获取 RichTextString。文本框中格式化文本的存储模型与普通单元格中的存储模型有所不同,主要是它似乎支持额外的功能和格式类型。文本框文本的结构/存储方式有点像 Word

但是,有个好消息 - 您可以做您想做的事情,更改文本框中的某些特定文本,而无需更改格式!

首先,来自您的XSSFTextBox ,调用getTextParagraphs()获取paragraphs

下一步,调用getTextRuns()使各个文本运行共享相同的格式。搜索这些内容,直到找到包含您要更改的文本的内容。最后调用XSSFTextRun.setText(String)更改该运行的文本。格式将保持不变

关于java - 从文本框中获取 Apache POI XSSFRichTextString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50132492/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com