为啥getOMathList方法不存在这个包里呢
时间: 2024-03-16 21:42:01 浏览: 47
很抱歉,我的回答有误。`getOMathList()`方法不是`XWPFRun`类的方法,因此在这个类中找不到该方法。实际上,需要使用`org.openxmlformats.schemas.wordprocessingml.x2006.main.CTR`类来获取公式列表。
以下是更新后的示例代码:
```java
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTR;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTOMath;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STOnOff;
import java.io.File;
import java.io.FileInputStream;
public class ReadWordFormula {
public static void main(String[] args) throws Exception {
File file = new File("test.docx");
FileInputStream fis = new FileInputStream(file);
XWPFDocument document = new XWPFDocument(fis);
for (XWPFParagraph paragraph : document.getParagraphs()) {
for (CTR ctr : paragraph.getCTP().getRList().get(0).getRPr().getRStyleOrRPrChangeOrRPr()) {
CTOMath ctOMath = ctr.getOMath();
if (ctOMath != null && ctOMath.getOMathParaList().size() > 0) {
STOnOff stOnOff = ctOMath.getOMathParaList().get(0).getOMathList().get(0).getE().getOMath().getF().getEqArr().getType();
if (stOnOff != null && stOnOff.intValue() == STOnOff.INT_ON)
System.out.println("公式:" + paragraph.getText());
}
}
}
document.close();
fis.close();
}
}
```
在上面的代码中,我们使用`getCTP().getRList().get(0).getRPr().getRStyleOrRPrChangeOrRPr()`方法获取段落的第一个运行元素的`CTR`对象,并检查其中是否包含公式。如果包含公式,则使用`getOMathParaList().get(0).getOMathList().get(0)`方法获取公式的信息。最后,我们使用`getType()`方法检查公式类型并将其打印出来。