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.
Den här artikeln förklarar hur man implementerar IStreamProvider gränssnittet för att ställa in HtmlSaveOptions.StreamProvider-egenskapen. Genom att implementera detta gränssnitt kommer du att kunna spara de skapade resurserna under HTML-genereringen till specifika platser eller minnesströmmar.
Exempelkod
Det här är huvudkoden som visar användningen av HtmlSaveOptions.StreamProvider-egenskapen
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
String dataDir = Utils.getDataDir(HtmlSaveOptions.class); | |
Workbook wb = new Workbook(dataDir + "sample.xlsx"); | |
HtmlSaveOptions options = new HtmlSaveOptions(); | |
options.setStreamProvider(new ExportStreamProvider(dataDir)); | |
wb.save(dataDir + "out.html", options); |
Här är koden för ExportStreamProvider-klassen som implementerar IStreamProvider-gränssnittet som används i koden ovan.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
public class ExportStreamProvider implements IStreamProvider { | |
private String outputDir; | |
public ExportStreamProvider(String dir) { | |
outputDir = dir; | |
System.out.println(outputDir); | |
} | |
@Override | |
public void closeStream(StreamProviderOptions options) throws Exception { | |
if (options != null && options.getStream() != null) { | |
options.getStream().close(); | |
} | |
} | |
@Override | |
public void initStream(StreamProviderOptions options) throws Exception { | |
System.out.println(options.getDefaultPath()); | |
File file = new File(outputDir); | |
if (!file.exists() && !file.isDirectory()) { | |
file.mkdirs(); | |
} | |
String defaultPath = options.getDefaultPath(); | |
String path = outputDir + defaultPath.substring(defaultPath.lastIndexOf("/") + 1); | |
options.setCustomPath(path); | |
options.setStream(new FileOutputStream(path)); | |
} | |
} | |