java POI 获取书签内容,即使手动换行也能获取到

本文介绍如何在使用javaPOI处理Word模板时,解决标题内容换行导致常规方法仅获取首行的问题,通过修改模板并在适当位置添加书签,获取书签内完整内容的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java POI 获取书签内容,即使手动换行也能获取到

需求:在线编辑后,获取word模板中的标题内容,标题输入时换行了,结果常规获取段落内容方式只能获取到第一行的文本,要获取书签内的所有内容,解决方案如下:

一、修改模板,如标题书签为PO_title,在此书签之前的位置重新添加一个书签:start

总之就是要想办法获取到整改书签内的内容,就借助本书签之前的书签到本书签结束位置的所有内容,就是本书签的全部信息了

Document doc = new Document("D:/text.docx");
DocumentBuilder builder = new DocumentBuilder(doc);
builder.startBookmark("start");
BookmarkEnd end = builder.endBookmark("PO_title");
Bookmark bookmark = doc.getRange().getBookmarks().get("PO_title");
bookmark.getBookmarkStart().getParentNode().insertBefore(end, bookmark.getBookmarkStart());
String value = doc.getRange().getBookmarks().get(end.getName()).getText();

A:你可以使用Apache POI的Cell类来获取单元格内容。首先,你需要获取单元格对象,然后使用getCellType()方法获取单元格类型。如果单元格是文本类型,则可以使用getStringCellValue()方法获取文本值。如果单元格是数字类型,则可以使用getNumericCellValue()方法获取数字值。以下是示例代码: ``` import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.FileInputStream; import java.io.InputStream; public class GetCellValue { public static void main(String[] args) throws Exception { InputStream inputStream = new FileInputStream("test.xlsx"); XSSFWorkbook workbook = new XSSFWorkbook(inputStream); Sheet sheet = workbook.getSheetAt(0); Row row = sheet.getRow(0); Cell cell = row.getCell(0); switch(cell.getCellType()) { case Cell.CELL_TYPE_STRING: System.out.println(cell.getStringCellValue()); break; case Cell.CELL_TYPE_NUMERIC: System.out.println(cell.getNumericCellValue()); break; default: break; } inputStream.close(); } } ``` 在上面的示例中,我们打开一个名为test.xlsx的Excel文件,并获取第一个工作表中第一行第一列的单元格。然后,我们检查单元格类型,并打印出相应的值。注意,这个示例使用了XSSFWorkbook类来处理.xlsx格式的Excel文件。如果你要处理.xls格式的Excel文件,则需要使用HSSFWorkbook类。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值