HTML mit StreamProvider speichern
Beim Konvertieren von Excel-Dateien, die Bilder und Formen enthalten, in HTML-Dateien stehen wir oft vor den folgenden beiden Problemen:
- 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 Sie die IStreamProvider-Schnittstelle zur Festlegung der HtmlSaveOptions.StreamProvider-Eigenschaft implementieren. Durch die Implementierung dieser Schnittstelle können die erstellten Ressourcen während der HTML-Generierung an bestimmte Speicherorte oder Speicherströme gespeichert werden.
Beispielcode
Dies ist der Hauptcode, der die Verwendung der HtmlSaveOptions.StreamProvider-Eigenschaft zeigt
// 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); |
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-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)); | |
} | |
} | |