IFilePathProviderインターフェースを介してエクスポートされたワークシートのHTMLファイルパスを提供する
可能な使用シナリオ
例えば、複数のシートを持つエクセルファイルがあり、それぞれのシートを個別のHTMLファイルにエクスポートしたいとします。もし、いくつかのシートに他のシートへのリンクがある場合、そのリンクはエクスポートされたHTMLでは壊れた状態になります。この問題に対処するために、Aspose.CellsはIFilePathProvider インターフェースを提供しており、これを実装して壊れたリンクを修正できます。
IFilePathProviderインターフェースを介してエクスポートされたワークシートのHTMLファイルパスを提供する
以下のコードで使用されたサンプルエクセルファイルとそのエクスポートされたHTMLファイルをダウンロードしてください。これらのファイルはすべてTempディレクトリ内にあります。それらをC:ドライブに解凍すればC:\Tempディレクトリになります。その後、ブラウザでSheet1.htmlファイルを開き、それに含まれるリンクをクリックしてください。これらのリンクはSheet1.html内にあるこれらの2つのエクスポートされたHTMLワークシートを参照しています。これらのワークシートはC:\Temp\OtherSheetsディレクトリ内にあります。
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ディレクトリはイメージです。実行する前に、好きなディレクトリを使用し、サンプルエクセルファイルをそのディレクトリに配置し、提供されたサンプルコード内のdirPath変数を変更し、実行してください。それにより、指定したディレクトリ内にOtherSheetsサブディレクトリが作成され、その中に2番目と3番目のワークシートのHTMLがエクスポートされます。
これらの行のコメントアウトを解除すると、Sheet1.htmlのリンクが壊れ、Sheet2.htmlまたはSheet3.htmlをSheet1.html内のリンクをクリックしても開くことができなくなります
//If you will comment this line, then hyperlinks will be broken
options.setFilePathProvider(new FilePathProvider());
提供されたサンプルエクセルファイルを使用して、以下の完全なサンプルコードを実行できます。