Предоставьте путь к экспортированному файлу HTML рабочего листа через интерфейс IFilePathProvider

Возможные сценарии использования

Предположим, у вас есть файл Excel с несколькими листами, и вы хотите экспортировать каждый лист в отдельный файл HTML. Если у одного из ваших листов есть ссылки на другие листы, то эти ссылки будут сломаны в экспортированном HTML. Чтобы решить эту проблему, Aspose.Cells предоставляет интерфейс IFilePathProvider, который вы можете реализовать, чтобы исправить сломанные ссылки.

Предоставьте путь к экспортированному файлу HTML рабочего листа через интерфейс IFilePathProvider

Пожалуйста, загрузите образец файла Excel, используемый в следующем коде, и его экспортированные файлы HTML. Все эти файлы находятся в каталоге Temp. Распакуйте их на диск C:. Тогда это станет каталогом C:\Temp. Затем откройте файл Sheet1.html в браузере и щелкните по двум ссылкам внутри него. Эти ссылки относятся к двум экспортированным HTML-листам, которые находятся в каталоге C:\Temp\OtherSheets.

 file:///C:/Temp/OtherSheets/Sheet2.html#RANGE!A1

file:///C:/Temp/OtherSheets/Sheet3.html#RANGE!A1

На следующем снимке экрана показано, как выглядят C:\Temp\Sheet1.html и его ссылки

todo:image_alt_text

На следующем снимке экрана показан исходный код HTML. Как видите, ссылки теперь указывают на каталог C:\Temp\OtherSheets. Это было достигнуто с использованием интерфейса IFilePathProvider.

todo:image_alt_text

Образец кода

Обратите внимание, что каталог 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 "";
}
}