Enregistrer Html avec StreamProvider
Lors de la conversion de fichiers Excel contenant des images et des formes en fichiers HTML, nous rencontrons souvent les deux problèmes suivants :
- Où devons-nous enregistrer les images et les formes lors de l’enregistrement du fichier Excel au flux HTML.
- Remplacer le chemin par défaut par le chemin attendu.
Cet article explique comment implémenter l’interface IStreamProvider pour définir la propriété HtmlSaveOptions.StreamProvider. En implémentant cette interface, vous pourrez enregistrer les ressources créées lors de la génération HTML dans des emplacements spécifiques ou des flux de mémoire.
Voici le code principal montrant l’utilisation de la propriété HtmlSaveOptions.StreamProvider
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
string outputDir = dataDir + @"out\"; | |
// Create workbook | |
Workbook wb = new Workbook(dataDir + "sample.xlsx"); | |
HtmlSaveOptions options = new HtmlSaveOptions(); | |
options.StreamProvider = new ExportStreamProvider(outputDir); | |
// Save into .html using HtmlSaveOptions | |
wb.Save(dataDir + "output_out.html", options); |
Voici le code de la classe ExportStreamProvider qui implémente l’interface IStreamProvider utilisée dans le code ci-dessus.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
public class ExportStreamProvider : IStreamProvider | |
{ | |
private string outputDir; | |
public ExportStreamProvider(string dir) | |
{ | |
outputDir = dir; | |
} | |
public void InitStream(StreamProviderOptions options) | |
{ | |
string path = outputDir + Path.GetFileName(options.DefaultPath); | |
options.CustomPath = path; | |
Directory.CreateDirectory(Path.GetDirectoryName(path)); | |
options.Stream = File.Create(path); | |
} | |
public void CloseStream(StreamProviderOptions options) | |
{ | |
if (options != null && options.Stream != null) | |
{ | |
options.Stream.Close(); | |
} | |
} | |
} |