Spara HTML med StreamProvider
När du konverterar excelfiler som innehåller bilder och former till html-filer stöter vi ofta på följande två problem:
- Var ska vi spara bilderna och formerna när vi sparar excelfilen till HTML-ström.
- Ersätt standardvägen med förväntad väg.
I den här artikeln förklaras hur man implementerar gränssnittet IStreamProvider för att ställa in egenskapen HtmlSaveOptions.StreamProvider. Genom att implementera detta gränssnitt kan du spara de skapade resurserna under HTML-generering till dina specifika platser eller minnesströmmar.
Detta är huvudkoden som visar användningen av egenskapen 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); |
Här är koden för klassen ExportStreamProvider som implementerar gränssnittet IStreamProvider som används i ovanstående kod.
// 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(); | |
} | |
} | |
} |