Android修行手册-POI操作Excel实现超链接并且变为蓝色

👉关于作者

专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)
有什么需要欢迎底部卡片私我,交流让学习不再孤单

👉实践过程

😜问题

我有个 Excel 文档,里面有很多的图片链接,需要进行内容提取分类,并且保存为新的 Excel 文件。写入保存后看到里面的超链接是默认的文本形式。失去了原 Excel 的超链接蓝色以及跳转功能。

😜解决

超链接

翻了翻 POI 的文档, 很容易就找到了解决方案。在 POI 中让单元格实现超链接功能, 可以用Hyperlink 函数。

方式一:

java 复制代码
CreationHelper createHelper = yesOrNoWorkBook.getCreationHelper(); // 创建一个超链接对象
Hyperlink hyperlink = createHelper.createHyperlink(XSSFHyperlink.LINK_URL);
hyperlink.setAddress(str); // 设置超链接的地址
newCell.setHyperlink(hyperlink); // 在单元格中添加超链接

如代码所示,实现起来超级简单,借住了 Hyperlink 对象进行操作。

yesOrNoWorkBook 就是你的 workbook 操作对象,newCell 是你的列对象,

方式二:

java 复制代码
newCell.setCellType(HSSFCell.CELL_TYPE_FORMULA);
//第一个参数是指向的地址,第二个参数是显示的字符串
newCell.setCellFormula("HYPERLINK(\"" + "https://zhima.blog.csdn.net/"+ "\",\"" + "Google Canada"+ "\")");
//或者下面的方式  []里面是你的excel文档,第二个是你的页,A1 表示的 第一行A列。 
newCell.setCellFormula("HYPERLINK(\"[workbook.xls]'sheet2'!A1\",\"芝麻粒儿\")"); 
//其中excel文档指定还可以利用 # 表示当前文档
newCell.setCellFormula("\"#Sheet!B2\",\"芝麻粒儿\""); 
//上面代码表示本文档的Sheet页,第二行B列是超链接,字体显示为 芝麻粒儿

这段代码中各有优劣,newCell 是你的列对象。 第二行代码可以指定具体的超链接内容,下面两行代码是指定原 Excel 中的指定单元格为超链接。

字体样式

上面超链接是插入了,但是超链接单元格看起来和一般的单元格没有分别, 除非你把鼠标放上去才会变成手行光标。肉眼一看无法看出来是超链接。

为了和一般的习惯相符, 还需要把字符颜色变成蓝色和加上下划线。 这就要用到 style了。

java 复制代码
CellStyle linkStyle = yesOrNoWorkBook.createCellStyle();
Font cellFont = yesOrNoWorkBook.createFont();
cellFont.setUnderline((byte) 1);
cellFont.setColor(IndexedColors.BLUE.getIndex());
linkStyle.setFont(cellFont);
newCell.setCellStyle(linkStyle);

上面的代码实现也很简单,yesOrNoWorkBook 是你自己的 workbook 对象,setUnderline 是设置下划线,setColor 是设置字体颜色,借住了 IndexedColors 类。有的文章教程使用的其他的类,我尝试了下 Android 平台不一定支持。

弄完字体样式后利用 setCellStyle 给对应的列设置即可。

👉其他

📢作者:小空和小芝中的小空
📢转载说明-务必注明来源:https://zhima.blog.csdn.net/
📢这位道友请留步 ☁️,我观你气度不凡 ,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞 👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。

温馨提示点击下方卡片获取更多意想不到的资源。

相关推荐
办公解码器10 小时前
Excel怎么批量快速修改批注?
excel
pedestrian_h10 小时前
操作系统-线程
android·java·开发语言
gfdgd xi11 小时前
GXDE 内核管理器 1.0.1——修复bug、支持loong64
android·linux·运维·python·ubuntu·bug
美狐美颜sdk11 小时前
跨平台直播美颜sdk集成攻略:Android、iOS与Web的统一方案
android·前端·ios
我是小邵12 小时前
主流数据分析工具全景对比:Excel / Python / R / Power BI / Tableau / Qlik / Snowflake
python·数据分析·excel
❀͜͡傀儡师12 小时前
二维码/条码识别、身份证识别、银行卡识别、车牌识别、图片文字识别、黄图识别、驾驶证(驾照)识别
android·scanner
乘风!12 小时前
前端Jquery,后端Java实现预览Word、Excel、PPT,pdf等文档
pdf·word·excel·jquery
生莫甲鲁浪戴13 小时前
Android Studio新手开发第三十五天
android·ide·android studio
qq_7174100113 小时前
FAQ20472:相机录像镜像功能实现
android
Sam_Deep_Thinking15 小时前
EasyExcel 流式处理中实现末尾行过滤的技术方案
excel