Salva Html con StreamProvider
Quando si convertono file Excel che contengono immagini e forme in file HTML, ci troviamo spesso di fronte ai seguenti due problemi:
- Dove dovremmo salvare le immagini e le forme durante il salvataggio del file excel in formato html.
- Sostituire il percorso predefinito con il percorso accettato.
Questo articolo spiega come implementare l’interfaccia IStreamProvider per impostare la proprietà HtmlSaveOptions.StreamProvider. Implementando questa interfaccia, sarà possibile salvare le risorse create durante la generazione di HTML nelle posizioni specifiche o nei flussi di memoria.
Codice di esempio
Questo è il codice principale che mostra l’uso della proprietà HtmlSaveOptions.StreamProvider
// 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); |
Ecco il codice per la classe ExportStreamProvider che implementa l’interfaccia IStreamProvider utilizzata nel codice precedente.
// 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)); | |
} | |
} | |