gpt4 book ai didi

java - HWPFDocument/XWPFDocument 新行

转载 作者:行者123 更新时间:2023-12-01 14:52:09 38 4
gpt4 key购买 nike

我正在尝试从 microsoft-word 中提取数据并将其转换为 sql 语句并将其插入 Oracle 数据库。

当 ms-word 中的数据包含通过 [Shift-Enter] 创建的新行而不只是 Enter 时,

文本包含一个看起来像带有问号的框的图标。

enter image description here

其中 ET 只是使用 Enter 键的标准新行,ST 是使用

的新行

Shift-Enter 组合。因此,当生成 SQL 并将其插入到 oracle 时,oracle 不会将其视为文本,而是将其视为十六进制。

我的问题是,如何将 [shift-enter] 创建的行删除为标准的“\n”?

谢谢

更新这就是我获取文本信息的方式

POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(file));
HWPFDocument doc = new HWPFDocument(fs);
WordExtractor we = new WordExtractor(doc);
text = we.getText();

更新答案:这是 poi-3.6 中的一个错误。在 poi-3.8 中显示为\r。

最佳答案

您几乎肯定会看到 Word 文档中的“字段”,它们是特殊的文本 block ,例如链接、宏等

第一个选项是继续使用 WordExtractor,但调用 stripFields(String)在使用结果文本之前。这将为您从文本中删除所有这些字段。

另一种选择是使用不同的方式来获取文本。 WordToTextConverter是 Apache POI 的一部分,是更复杂的代码,可以处理更多格式,应该为您跳过这些(WordExtractor 非常简单且低级别)。另一种是使用Apache Tika ,它提供了从多种文件格式中提取文本的通用方法。它确实有正确的代码来处理字段,而且作为额外的好处,当您的需求发生变化时,支持 .docx 或 .pdf 将变得微不足道!

关于java - HWPFDocument/XWPFDocument 新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14732791/

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