HTML mit StreamProvider speichern
Beim Konvertieren von Excel-Dateien, die Bilder und Formen enthalten, in HTML-Dateien stoßen wir häufig auf die folgenden zwei Probleme:
- Wo sollten wir die Bilder und Formen speichern, wenn wir die Excel-Datei in eine HTML-Streamdatei speichern.
- Ersetzen Sie den Standardpfad durch den erwarteten Pfad.
Dieser Artikel erklärt, wie die IStreamProvider-Schnittstelle implementiert wird, um die Eigenschaft HtmlSaveOptions.StreamProvider festzulegen. Durch die Implementierung dieser Schnittstelle können die erstellten Ressourcen während der HTML-Generierung an spezifischen Speicherorten oder in Memory-Streams gespeichert werden.
Dies ist der Hauptcode zur Verwendung der Eigenschaft 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); |
Hier ist der Code für die Klasse ExportStreamProvider, die die IStreamProvider-Schnittstelle implementiert, die im obigen Code verwendet wird.
// 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(); | |
} | |
} | |
} |