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とそのリンクの外観を示しています

todo:image_alt_text

以下のスクリーンショットはHTMLソースを示しています。リンクがC:\Temp\OtherSheetsディレクトリを参照するように修正されたことがわかります。これはIFilePathProvider インターフェースを使用して達成されました。

todo:image_alt_text

サンプルコード

注意:C:\Tempディレクトリはイメージです。実行する前に、好きなディレクトリを使用し、サンプルエクセルファイルをそのディレクトリに配置し、提供されたサンプルコード内のdirPath変数を変更し、実行してください。それにより、指定したディレクトリ内にOtherSheetsサブディレクトリが作成され、その中に2番目と3番目のワークシートのHTMLがエクスポートされます。

これらの行のコメントアウトを解除すると、Sheet1.htmlのリンクが壊れ、Sheet2.htmlまたはSheet3.htmlSheet1.html内のリンクをクリックしても開くことができなくなります

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

options.setFilePathProvider(new FilePathProvider());

提供されたサンプルエクセルファイルを使用して、以下の完全なサンプルコードを実行できます。