エクスポートされたワークシート 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そしてそのリンクは次のようになります
次のスクリーンショットは、HTML ソースを示しています。リンクが現在参照していることがわかります。C:\Temp\OtherSheetsディレクトリ。これは、IFilePathProviderインターフェース。
サンプルコード
ご注意くださいC:\Tempディレクトリは、説明のみを目的としています。選択した場所の任意のディレクトリを使用できますサンプルエクセルファイルその中で、提供されたサンプル コードを実行します。次に作成しますその他のシートディレクトリ内のサブディレクトリを開き、その中に 2 番目と 3 番目のワークシート 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());
以下は、提供されたコマンドで実行できる完全なサンプル コードです。サンプルエクセルファイル.
// 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 ""; | |
} | |
} |