Java輕松實(shí)現(xiàn)在Excel中添加超鏈接功能
前言
超鏈接是指在網(wǎng)頁(yè)或電子文檔中常見的元素,它的主要作用是將一個(gè)文本或圖像與另一網(wǎng)頁(yè)、文件或資源鏈接起來(lái),從而使用戶能夠通過(guò)點(diǎn)擊該鏈接跳轉(zhuǎn)到目標(biāo)資源、超鏈接可以起到導(dǎo)航以及引用的作用。超鏈接通常有以下幾種用途:
- 網(wǎng)頁(yè)鏈接
- 文檔鏈接
- 內(nèi)部定位鏈接
- 電子郵件鏈接
在Java中設(shè)置超鏈接
下面小編將為大家介紹如何使用Java實(shí)現(xiàn)超鏈接的添加、刪除和帶形狀的超鏈接。在下面的例子中我們使用到了GcExcel產(chǎn)品,具體的例子如下。
添加超鏈接
下面的代碼,添加了四個(gè)鏈接,分別是外部文件,網(wǎng)頁(yè)鏈接,定位鏈接及郵件鏈接。
Workbook wb = new Workbook(); IWorksheet sheet = wb.getActiveSheet(); // 添加外部文件鏈接 sheet.getRange("A1:B2").getHyperlinks().add(sheet.getRange("A1"), "C:/Documents/GcExcel/GrapeCityDocumentsExcel/Project/Hyperlink/SampleFile.xlsx", null, "鏈接至SampleFile.xlsx文件.", "SampleFile.xlsx"); // 添加網(wǎng)頁(yè)鏈接 sheet.getRange("A3:B4").getHyperlinks().add(sheet.getRange("A3"), "http://www.grapecity.com.cn/", null, "打開葡萄城官網(wǎng).", "葡萄城"); // 添加內(nèi)部定位鏈接 sheet.getRange("A5:B6").getHyperlinks().add(sheet.getRange("A5"), null, "Sheet1!$C$3:$E$4", "跳轉(zhuǎn)至 sheet1 C3:E4", ""); // 添加郵件鏈接 sheet.getRange("A7:B8").getHyperlinks().add(sheet.getRange("A7"), "mailto:sales.xa@grapecity.com", null, "發(fā)送至銷售部門", "發(fā)送至中國(guó)銷售"); wb.save("output/hyperlinks.xlsx");
實(shí)現(xiàn)效果如下圖:
刪除超鏈接
通過(guò) delete 可以刪除對(duì)應(yīng)單元格上的超鏈接,下面代碼刪除了 "A5:B6" 單元格中的超鏈接。
Workbook wb = new Workbook(); wb.open("output/hyperlinks.xlsx"); IWorksheet sheet = wb.getActiveSheet(); sheet.getRange("A5:B6").getHyperlinks().delete(); wb.save("output/removeHyperlinks.xlsx");
實(shí)現(xiàn)效果如下圖:
帶有超鏈接的形狀
除了普通的超鏈接,GcExcel 還支持帶有超鏈接的形狀,通過(guò)下面的代碼可以創(chuàng)建帶有超鏈接的形狀。
// 創(chuàng)建workbook Workbook workbook = new Workbook(); IWorksheet worksheet = workbook.getActiveSheet(); // 添加形狀 IShape shape1 = worksheet.getShapes().addShape(AutoShapeType.Rectangle, 10, 0, 100, 100); shape1.getTextFrame().getTextRange().add("點(diǎn)擊訪問GcExcel官網(wǎng)"); IShape shape2 = worksheet.getShapes().addShape(AutoShapeType.RightArrow, 10, 120, 100, 100); shape2.getTextFrame().getTextRange().add("跳轉(zhuǎn)至 sheet1 C3:E4"); IShape shape3 = worksheet.getShapes().addShape(AutoShapeType.Oval, 10, 240, 100, 100); shape3.getTextFrame().getTextRange().add("發(fā)送郵件"); IShape shape4 = worksheet.getShapes().addShape(AutoShapeType.LeftArrow, 10, 360, 100, 100); shape4.getTextFrame().getTextRange().add("鏈接external.xlsx文件"); //給shape1添加網(wǎng)址鏈接 worksheet.getHyperlinks().add(shape1, "https://www.grapecity.com.cn/developer/grapecitydocuments/excel-java", null, "點(diǎn)擊訪問GcExcel官網(wǎng)", "GcExcel"); //給shape2添加內(nèi)部定位鏈接 worksheet.getHyperlinks().add(shape2, null, "Sheet1!$C$3:$E$4", "跳轉(zhuǎn)至 sheet1 C3:E4", null); //給shape3添加郵件鏈接 worksheet.getHyperlinks().add(shape3, "mailto:sales.xa@grapecity.com", null, "發(fā)送郵件", "發(fā)送郵件"); //給shape4添加文檔鏈接 String path = "external.xlsx"; worksheet.getHyperlinks().add(shape4, path, null, "鏈接external.xlsx文件", "External.xlsx"); //保存到Excel workbook.save("output/shapeHyperlink.xlsx");
實(shí)現(xiàn)效果如下圖:
總結(jié)
綜上所述,超鏈接是網(wǎng)頁(yè)和電子文檔中常見的元素,它將文本或圖像與其他資源相關(guān)聯(lián),實(shí)現(xiàn)了導(dǎo)航和引用的功能。無(wú)論是在網(wǎng)頁(yè)中還是在Java編程中,我們都可以靈活運(yùn)用超鏈接來(lái)連接不同的內(nèi)容和資源。通過(guò)添加、刪除和帶形狀的超鏈接,我們可以實(shí)現(xiàn)更加豐富和個(gè)性化的用戶交互體驗(yàn)。超鏈接的應(yīng)用范圍廣泛,包括網(wǎng)頁(yè)鏈接、文檔鏈接、內(nèi)部定位鏈接和電子郵件鏈接等。相信隨著技術(shù)的不斷發(fā)展,超鏈接將在互聯(lián)網(wǎng)和數(shù)字化領(lǐng)域中扮演越來(lái)越重要的角色,為用戶提供更加便捷和豐富的資源訪問方式。
到此這篇關(guān)于Java輕松實(shí)現(xiàn)在Excel中添加超鏈接功能的文章就介紹到這了,更多相關(guān)Java Excel添加超鏈接內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Mybatis中BindingException異常的產(chǎn)生原因及解決過(guò)程
BindingException異常是MyBatis框架中自定義的異常,顧名思義指的是綁定出現(xiàn)問題,下面這篇文章主要給大家介紹了關(guān)于MyBatis報(bào)錯(cuò)BindingException異常的產(chǎn)生原因及解決過(guò)程,需要的朋友可以參考下2023-06-06Java?常量池詳解之class文件常量池?和class運(yùn)行時(shí)常量池
這篇文章主要介紹了Java?常量池詳解之class文件常量池?和class運(yùn)行時(shí)常量池,常量池主要存放兩大類常量:字面量,符號(hào)引用,本文結(jié)合示例代碼對(duì)java class常量池相關(guān)知識(shí)介紹的非常詳細(xì),需要的朋友可以參考下2022-12-12Java 服務(wù)端消息推送的實(shí)現(xiàn)小結(jié)
本文主要介紹了Java 服務(wù)端消息推送的實(shí)現(xiàn)小結(jié),主要包括四種常見的消息實(shí)時(shí)推送方案:短輪詢、長(zhǎng)輪詢、SSE?和?WebSocket,具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10visual studio 2019安裝配置可編寫c/c++語(yǔ)言的IDE環(huán)境
這篇文章主要介紹了visual studio 2019安裝配置可編寫c/c++語(yǔ)言的IDE環(huán)境,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03解決java junit單元測(cè)試@Test報(bào)錯(cuò)的問題
今天小編就為大家分享一篇解決java junit單元測(cè)試@Test報(bào)錯(cuò)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11Java實(shí)現(xiàn)的AES256加密解密功能示例
這篇文章主要介紹了Java實(shí)現(xiàn)的AES256加密解密功能,結(jié)合完整實(shí)例形式分析了Java實(shí)現(xiàn)AES256加密解密功能的步驟與相關(guān)操作技巧,需要的朋友可以參考下2017-02-02Java?詳細(xì)講解線程的狀態(tài)及部分常用方法
在Java程序中,一個(gè)線程對(duì)象只能調(diào)用一次start()方法啟動(dòng)新線程,并在新線程中執(zhí)行run()方法。一旦run()方法執(zhí)行完畢,線程就結(jié)束了,本篇來(lái)講解Java線程的狀態(tài)以及部分常用方法2022-04-04Mybatis_plus基礎(chǔ)教程(總結(jié)篇)
這篇文章主要介紹了Mybatis_plus基礎(chǔ)教程(總結(jié)篇),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09