通过IFilePathProvider接口提供导出的工作表HTML文件路径
可能的使用场景
假设您有一个包含多个工作表的Excel文件,并且希望将每个工作表导出为单独的HTML文件。如果您的任何工作表都具有指向其他工作表的链接,那么这些链接在导出的HTML中将会断开。为了解决这个问题,Aspose.Cells提供了IFilePathProvider接口,您可以实现该接口来修复断开的链接。
通过IFilePathProvider接口提供导出的工作表HTML文件路径
请下载以下代码中使用的示例Excel文件及其导出的HTML文件。所有这些文件都在Temp目录中。您应该将其解压缩到C:驱动器上。然后它将变为C:\Temp目录。然后您将在浏览器中打开Sheet1.html文件,并单击其中的两个链接。这些链接指向C:\Temp\OtherSheets目录中的这两个导出的HTML工作表。
file:///C:/Temp/OtherSheets/Sheet2.html#RANGE!A1
file:///C:/Temp/OtherSheets/Sheet3.html#RANGE!A1
以下截图显示了C:\Temp\Sheet1.html及其链接的外观
以下截图显示了HTML源代码。正如您所看到的,现在链接是指向C:\Temp\OtherSheets目录。这是通过IFilePathProvider接口实现的。
示例代码
请注意,C:\Temp目录仅用于说明目的。您可以使用任何自己选择的目录,并将示例Excel文件放在其中,并执行提供的示例代码。然后它将在您的目录内创建OtherSheets子目录,并在其中导出第二和第三个工作表的HTML。请在执行之前更改提供的代码中的dirPath变量并将其指向您选择的目录。
请注意,取消代码中这些行的注释将使Sheet1.html和Sheet2.html或Sheet3.html中的链接中断,或当单击Sheet1.html中的链接时将不会打开。
//If you will comment this line, then hyperlinks will be broken
options.setFilePathProvider(new FilePathProvider());
以下是您可以使用提供的示例Excel文件执行的完整示例代码。
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getDataDir(OpeningFilesThroughPath.class); | |
// Opening from path. Creating an Workbook object with an Excel file path | |
Workbook workbook1 = new Workbook(dataDir + "Book1.xlsx"); | |
// Print message | |
System.out.println("Workbook opened using path successfully."); |
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
public class FilePathProvider { | |
// Gets the full path of the file by worksheet name when exporting worksheet to html separately. | |
// So the references among the worksheets could be exported correctly. | |
public String getFullName(String sheetName) { | |
String dataDir = Utils.getDataDir(FilePathProvider.class); | |
if ("Sheet2".equals(sheetName)) { | |
return dataDir + "Sheet2.html"; | |
} else if ("Sheet3".equals(sheetName)) { | |
return dataDir + "Sheet3.html"; | |
} | |
return ""; | |
} | |
} |