エクスポートされたワークシート HTML ファイル パスを IFilePathProvider インターフェイス経由で提供します

考えられる使用シナリオ

複数のシートを含む Excel ファイルがあり、各シートを個別の HTML ファイルにエクスポートするとします。シートのいずれかに他のシートへのリンクがある場合、それらのリンクはエクスポートされた HTML で壊れます。この問題に対処するために、Aspose.Cells はIFilePathProvider壊れたリンクを修正するために実装できるインターフェース。

エクスポートされたワークシート HTML ファイル パスを IFilePathProvider インターフェイス経由で提供します

をダウンロードしてくださいサンプルエクセルファイル次のコードとそのエクスポートされた HTML ファイルで使用されます。これらのファイルはすべて温度ディレクトリ。あなたはそれを抽出する必要があります子:ドライブ。それからそれはなるでしょうC:\Tempディレクトリ。次に、Sheet1.htmlファイルをブラウザーで開き、その中の 2 つのリンクをクリックします。これらのリンクは、C:\Temp\OtherSheetsディレクトリ。

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

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

次のスクリーンショットは、C:\Temp\Sheet1.htmlそしてそのリンクは次のようになります

todo:画像_代替_文章

次のスクリーンショットは、HTML ソースを示しています。リンクが現在参照していることがわかります。C:\Temp\OtherSheetsディレクトリ。これは、IFilePathProviderインターフェース。

todo:画像_代替_文章

サンプルコード

ご注意くださいC:\Tempディレクトリは、説明のみを目的としています。選択した場所の任意のディレクトリを使用できますサンプルエクセルファイルその中で、提供されたサンプル コードを実行します。次に作成しますその他のシートディレクトリ内のサブディレクトリを開き、その中に 2 番目と 3 番目のワークシート HTML をエクスポートします。を変更してくださいdirPath提供されたコード内の変数で、実行前に選択したディレクトリを参照します。

コード内のこれらの行にコメントすると、リンクが壊れます。Sheet1.htmlSheet2.htmlまたSheet3.html内部でリンクをクリックしても開きませんSheet1.html

 //If you will comment this line, then hyperlinks will be broken

options.setFilePathProvider(new FilePathProvider());

以下は、提供されたコマンドで実行できる完全なサンプル コードです。サンプルエクセルファイル.

// 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 "";
}
}