使用 Apache POI 识别 Ms Word 中的项目符号
Identifying Bullets in Ms Word, using Apache POI
我正在尝试制作一个可以读取 word 文件 (docx) 并用它做一些事情的应用程序。到目前为止,除了识别子弹之外,我几乎完成了所有工作。
我可以找到 isBold()、isItalic()、isStrike() 但我似乎找不到 isBullet()
谁能告诉我如何识别子弹?
应用程序内置于 Java
没有 isBullet()
方法,因为 Word 中的列表样式比这复杂得多。您有不同的缩进级别、不同样式的项目符号、编号列表和项目符号列表等
您调用用例的最简单方法可能是 XWPFParagraph.html.getNumFmt():
Returns numbering format for this paragraph, eg bullet or lowerLetter. Returns null if this paragraph does not have numeric style.
调用它,如果你得到 null 它不是一个列表,如果是,你会知道它是项目符号、数字、字母等
您可以使用以下代码从 word 文档中获取所有项目符号的列表。我用过 apache poi XWPF api.
public class ListTest {
public static void main(String[] args) {
String filename = "file_path";
List<String> paraList = new ArrayList<String>();
try {
// is = new FileInputStream(fileName);
XWPFDocument doc =
new XWPFDocument(OPCPackage.open(filename));
List<XWPFParagraph> paragraphList = doc.getParagraphs();
for(XWPFParagraph para :paragraphList) {
if((para.getStyle()!=null) && (para.getNumFmt() !=null)) {
paraList.add(para.getText());
}
for(String bullet :paraList) {
System.out.println(bullet);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
我正在尝试制作一个可以读取 word 文件 (docx) 并用它做一些事情的应用程序。到目前为止,除了识别子弹之外,我几乎完成了所有工作。 我可以找到 isBold()、isItalic()、isStrike() 但我似乎找不到 isBullet()
谁能告诉我如何识别子弹?
应用程序内置于 Java
没有 isBullet()
方法,因为 Word 中的列表样式比这复杂得多。您有不同的缩进级别、不同样式的项目符号、编号列表和项目符号列表等
您调用用例的最简单方法可能是 XWPFParagraph.html.getNumFmt():
Returns numbering format for this paragraph, eg bullet or lowerLetter. Returns null if this paragraph does not have numeric style.
调用它,如果你得到 null 它不是一个列表,如果是,你会知道它是项目符号、数字、字母等
您可以使用以下代码从 word 文档中获取所有项目符号的列表。我用过 apache poi XWPF api.
public class ListTest {
public static void main(String[] args) {
String filename = "file_path";
List<String> paraList = new ArrayList<String>();
try {
// is = new FileInputStream(fileName);
XWPFDocument doc =
new XWPFDocument(OPCPackage.open(filename));
List<XWPFParagraph> paragraphList = doc.getParagraphs();
for(XWPFParagraph para :paragraphList) {
if((para.getStyle()!=null) && (para.getNumFmt() !=null)) {
paraList.add(para.getText());
}
for(String bullet :paraList) {
System.out.println(bullet);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}