当前位置: 首页 > news >正文

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

  • 点击跳转=>Unity3D特效百例
  • 点击跳转=>案例项目实战源码
  • 点击跳转=>游戏脚本-辅助自动化
  • 点击跳转=>Android控件全解手册
  • 点击跳转=>Scratch编程案例
  • 点击跳转=>软考全系列

👉关于作者

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

在这里插入图片描述

👉实践过程

😜问题

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

😜解决

超链接

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

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

如代码所示,实现起来超级简单,借住了 Hyperlink 对象进行操作。
yesOrNoWorkBook 就是你的 workbook 操作对象,newCell 是你的列对象,

方式二:

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了。

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/
📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。

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

http://www.lryc.cn/news/226318.html

相关文章:

  • Halcon WPF 开发学习笔记(2):Halcon导出c#脚本
  • Scrum敏捷开发全流程,3款必备的项目管理工具!
  • 基于Quartz实现动态定时任务
  • hdlbits系列verilog解答(计算向量中1出现次数)-41
  • 2023年最新的前端面试收集(1)
  • flutter实现上拉加载下拉刷新
  • tomcat+idea--如何在idea上发布项目
  • 考研数据结构单链表的增删改查看这一篇就够了
  • Windows查看端口占用情况
  • Python:词法分析(行结构与显式、隐式行拼接)
  • 前端Vue 结合xlxs库实现解析excel文件,并动态组装表头!
  • RabbitMQ集群配置以及负载均衡配置
  • Leetcode Hot100之六:42.接雨水
  • electron 主进程 和 渲染进程通信 ipcRenderer 和 mainWindow.webContents
  • 关于VUE启动内存溢出
  • HBase学习笔记(1)—— 知识点总结
  • 【Linux】 awk命令使用
  • Sentinel网关限流
  • solidworks对电脑要求高吗?2023solidworks配置要求
  • 搭建神经网络(torch.nn的用法)
  • 卡码网语言基础课 | 11. 句子缩写
  • Surface RT 安装 Linux
  • C++中的函数重载:多功能而强大的特性
  • 数据分析实战 | K-means算法——蛋白质消费特征分析
  • HTTP协议详解-下(Tomcat)
  • acwing算法基础之搜索与图论--prim算法
  • Amazon EC2 Serial Console 现已在其他亚马逊云科技区域推出
  • hdlbits系列verilog解答(100输入逻辑门)-39
  • Python 中 Selenium 的屏幕截图
  • scrapy发json的post请求