本文介绍了如何使用apache poi将超链接添加到Excel简单形状?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用 Microsoft Excel 2007.我在第一个 Excel 工作表上有一个简单的形状.我想在这个简单的形状上添加一个超链接,它引用特定行和列上的另一个工作表.我对此进行了研究,但我只找到了演示如何向给定单元格添加超链接的示例.如何在 Apache POI 的帮助下向给定的简单形状添加超链接?
I use Microsoft Excel 2007. I have a simple shape on the first excel sheet. I would like to add a hyperlink on this simple shape which refer to another sheet on the specific row and column. I make a research about this but I only found examples which demonstrate how to add a hyperlink to a given cell. How can I add a hyperlink to a given simple shape with the help of Apache POI?
推荐答案
我找到了问题的解决方案.我希望它会对其他人有所帮助.
I found solution of my issue. I hope it will help to someone else.
// Example for hyperlink address
// String hyperlinkAddress = sheet.getPackagePart().getPartName() + "/#'Sheet name'!Cell Address"
// My hyperlink address
String hyperlinkAddress = sheet.getPackagePart().getPartName()
+ "/#'List_of_Items'!A12";
// Create URI object which will containing our hyperlink address.
URI uri = new URI(null, null, hyperlinkAddress, null, null);
// Add relationship to XSSFDrawing object.
aPatriarch.getPackagePart().addRelationship(uri, TargetMode.INTERNAL,
XSSFRelation.SHEET_HYPERLINKS.getRelation());
// We need to extract the ID of the Relationship.
// We'll set the ID of the hyperlink to be the same as ID of the Relationship.
// To find appropriate Relationship we will traverse through all Relationships in the 'aPatriarch' object.
String relationshipId = null;
PackageRelationshipCollection prc = aPatriarch.getPackagePart().getRelationships();
for (PackageRelationship pr : prc) {
URI targetURI = pr.getTargetURI();
String target = targetURI.getPath();
if (target.equals(hyperlinkAddress)) {
relationshipId = pr.getId();
break;
}
}
// Create the hyperlink object
CTHyperlink hyperlink = CTHyperlink.Factory.newInstance();
// Set ID of hyperlink to be the same as Relationship ID
hyperlink.setId(relationshipId);
// Add hyperlink to the given shape
shape.getCTShape().getNvSpPr().getCNvPr().setHlinkClick(hyperlink);
这篇关于如何使用apache poi将超链接添加到Excel简单形状?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!