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

Apache POI格式问题

南宫泓
2023-03-14

我想知道是否有人能帮我弄清楚为什么当我阅读. doc文件时,我的文本没有对齐。到目前为止,在我的代码中,我使用的是WordExtractor,但是我遇到了格式问题,有些东西没有正确对齐。这是我使用1.7Java编写的代码。

public class Doc {
 File docFile = null;
 WordExtractor docExtractor = null ;
 WordExtractor exprExtractor = null ;
 public void read(){
  docFile = new File("blue.doc");
   try{
     FileInputStream fis = new FileInputStream(docFile.getAbsolutePath());
     HWPFDocument doc=new HWPFDocument(fis);
     docExtractor = new WordExtractor(doc);
     }catch(Exception e){
     System.out.println(e.getMessage());
  }


 System.out.println(docExtractor.getText());



  }
 }

程序如何显示文档。

 A                                                                      E
I'm stuck in Folsom Prison, and time keeps draggin on.  

应该是这样展示的

     A                                              E
 I'm stuck in Folsom Prison, and time keeps draggin on.  

共有1个答案

冯永长
2023-03-14

当然,这是行不通的。您正在将文档文件的内容提取到一个字符串变量中(这会将格式扭曲为类似文档的段落和所有段落)。此外,您正在将文本打印到控制台中,然后您希望它看起来与Microsoft word中的完全相同?

接下来,你应该想想你想做什么。假设您想验证文档的格式和内容,我的回答如下。使用getText()将文档转换为纯文本将以扭曲的格式提供文档内容,这对您没有帮助。通过使用POI库,您应该尝试访问文档中的每个段落和表格,并验证/读取/写入您想要的内容。

< code>doc.getRange()会给你一个Range对象。通过参考http://poi . Apache . org/API docs/org/Apache/poi/hwpf/user model/range . html来使用这个对象,您将能够访问文档中的所有段落、表格和部分。这将有助于你通过程序处理word文档。

 类似资料:
  • 我正在使用Apache POI读取零件编号电子表格中的数据。我在我们的数据库中查找零件编号,如果我们有零件的计算机辅助设计图纸,我将零件编号单元格涂成绿色,如果没有,我将其涂成红色。处理完成后,将保存电子表格。我遇到的问题是那列中的每个细胞都是绿色的。我已经完成了代码,查找零件号的逻辑工作正常,确定单元格应该是什么颜色以及设置颜色和填充的逻辑似乎也工作正常。知道我做错了什么吗? 谢谢

  • 问题内容: 我正在将时间戳字段格式化为“ DD / MM / YYYY”格式,以获取该日期的所有已处理记录。 上面的查询返回0计数。 上面的查询返回29个计数。 如果我运行: 等等… to_date格式将年份格式化为 0015 ? 如何避免将年份格式化为0015格式?我需要2015年的格式。请帮助我解决此问题。 问题答案: 截止日期(event_dt,“ DD / MM / YYYY”) 根据您对

  • 我有点迷失了 我试过3.17、4.0.0和5.0.0版。 或 我无法获得没有弃用或类型错误的代码:-( 我将Eclipe与Maven和Java11一起使用。在版本发布之后,我做了“更新项目”来更新Maven。

  • 问题内容: 我有具有以下结构的Java类(类名并不表示任何东西,我只是在组成它们)。 整理测试实例时,JAXB生成的XML输出是我遇到的问题。XML输出将始终如下所示: 如您所见,某些元素没有正确缩进(即,最深的元素,计数和句点)。这是为什么?我创建JAXB上下文的方式有问题吗?还是JAXB可以递归缩进多少元素有最大限制?我该如何解决?请注意,我也已将JAXB_FORMATTED_OUTPUT设置

  • 问题内容: 我在使用SimpleDateFormat对象的方法时遇到麻烦。 有问题的代码是: 其中“ date”是使用Calendar.getTimeInMillis()中的long int创建的Date对象。 除字符串的年份部分外,其他所有东西都工作正常。当我传递日期时,输出的字符串如下所示: 传递的日期对象是从以下类型返回的长整数创建的: 我相信从此方法返回的数字是从1月1日算起的毫秒数。19

  • 后端实体类使用了@jsonformat注释,但在前端获取数据时24-hour和12hour中的时间格式似乎存在问题。例如,后端时间为2021-5-21 00:50,但发送到前端的时间变成了2021-5-21 12:50。是@jsonformat的属性设置有问题还是前端。