我试图使用APACHE POI XSSF使用相对路径创建到文件的超链接。当打开用Microsft Excel创建的。xlsx文件时,相对路径被修改,并且没有很好地链接。Microsoft Excel在路径前面添加一些“../../”。我试着用OpenOffice打开它,它工作得很好。此外,我用HSSF尝试了它,它在Microsoft Excel和OpenOffice中都工作。知道为什么会这样吗?这是一个示例代码:
import java.io.File;
import java.io.FileOutputStream;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import org.apache.poi.hssf.usermodel.HSSFHyperlink;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CreationHelper;
import org.apache.poi.ss.usermodel.Hyperlink;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ExcelHyperlinks {
public static void main(String[] args) throws Exception{
/* Create Workbook and Worksheet */
XSSFWorkbook my_workbook = new XSSFWorkbook();
XSSFSheet my_sheet = my_workbook.createSheet("Cell Hyperlink");
CreationHelper createHelper = my_workbook.getCreationHelper();
Hyperlink url_link=createHelper.createHyperlink(HSSFHyperlink.LINK_URL);
Hyperlink file_link=createHelper.createHyperlink(HSSFHyperlink.LINK_FILE);
Hyperlink email_link=createHelper.createHyperlink(HSSFHyperlink.LINK_EMAIL);
/* Define the data for these hyperlinks */
url_link.setAddress("http://www.google.com");
try {
file_link.setAddress((URLEncoder.encode("Encuesta de bienvenida","UTF-8")+"/"+"E18").replace("\\", "/").replace("+","%20"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
System.out.println("addres--> " + file_link.getAddress());
email_link.setAddress("mailto:test@gmail.com");
/* Attach these links to cells */
Row row = my_sheet.createRow(0);
Cell cell = row.createCell(0);
cell.setCellValue("Take me to Google");
cell.setHyperlink(url_link);
row = my_sheet.createRow(1);
cell = row.createCell(1);
cell.setCellValue("Click to Open the file");
cell.setHyperlink(file_link);
row = my_sheet.createRow(2);
cell = row.createCell(2);
cell.setCellValue("Send an Email");
cell.setHyperlink(email_link);
/* Write changes to the workbook */
FileOutputStream out = new FileOutputStream(new File("C:/cell_hyperlink_example.xlsx"));
my_workbook.write(out);
out.close();
}
}
这似乎不是一个问题。excel的特性是,无论您给出的路径是什么,它都会创建一个从excel位置到超链接文件位置的相对路径。
每个“../”代表一个向上的目录。如果以这种方式从当前excel工作表位置移动,您将到达超链接文件目录。
例如,如果excel工作表位于例如C:\folder1\folder2\exceldir\test.xls
中,而超链接文件的目录是例如C:\folder1\folder3\imagedir\test.jpg
excel中标记的相对路径如下所示
../../folder3/imagedir/test.jpg
对于第一个../
,我们将从test.xls
移动到exceldir
,对于第二个../
,我们将从exceldir
移动到folder2
,现在同一个目录包含folder3
,所以它将从这里继续到test.jpg
。
有什么想法如何添加一个超链接在一个网页上使用这个库? 我发现了这个问题:如何使用pdfbox在内容中设置超链接,但这不起作用。 我只想在pdf文件的第一页添加一个超链接。 我更喜欢在页面底部添加以URL为中心的超链接。但目前任何建议都有帮助
KAG 存档保存的位置可以在 Config.tjs 的 saveDataLocation 处设定。可以和吉里吉里可执行文件位于同一目录、或者保存在(多用户环境下的) 用户文件夹。两种情况下,假如指定的目录下不存在存档子文件夹,都会自动创建。 ;saveDataLocation="savedata"; 像这样设定的话,就会简单的在吉里吉里可执行文件所在目录下的 savedata 文件夹里保存档案
行内式 格式为 [link text](URL 'title text')。 ① 普通链接: [Google](http://www.google.com/) Google ② 指向本地文件的链接: [icon.png](./images/icon.png) icon.png ③ 包含 'title' 的链接: [Google](http://www.google.com/ "Google")
主要有以下几种方式: 行内超链接 语法`链接文字 <URL>`_ 分开的超链接 用到链接的地方`链接文字`_, 定义链接的地方 .. _链接文字: URL 链接到指定文档 下载链接 外链接 访问 我的博客 ,可以了解更多信息。 访问 我的博客,可以了解更多信息。 我的博客地址是: https://www.wenjiangs.com ,以了解更多信息。 这篇文章参考的是:reStructuredTe
这个是本主题相关的文档和书名: JSSE API 文档 javax.net javax.net.ssl javax.security.cert Java SE Security Java SE Security 文档主页 Java SE Security 主页 Java 教程中的 The Security Features in Java SE Java PKI 编程者指南 Java 2 Plat
本文向大家介绍Linux网络相关配置文件,包括了Linux网络相关配置文件的使用技巧和注意事项,需要的朋友参考一下 Linux网络相关配置文件 一 网络参数与配置文件对应关系 所需要的网络参数 主要配置文件命名 重要参数 IP Netmask DHCP Gateway等 /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=网卡名称 BOOTPROTO=