حفظ Html باستخدام StreamProvider
عند تحويل ملفات إكسل التي تحتوي على صور وأشكال إلى ملفات HTML، نواجه غالبًا المشكلتين التاليتين: 1.أين يجب أن نحفظ الصور والأشكال عند حفظ ملف Excel إلى تدفق HTML.
- استبدال المسار الافتراضي بالمسار المتوقع.
يشرح هذا المقال كيفية تنفيذ واجهة IStreamProvider لضبط خاصية HtmlSaveOptions.StreamProvider. من خلال تنفيذ هذه الواجهة، ستتمكن من حفظ الموارد التي تم إنشاؤها أثناء إنشاء HTML إلى مواقعك الخاصة أو تدفقات الذاكرة.
كود عينة
هذا هو الكود الرئيسي الذي يظهر استخدام الخاصية 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); |
إليك الكود للفئة ExportStreamProvider التي تنفذ واجهة IStreamProvider والتي يتم استخدامها داخل الكود أعلاه.
// 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)); | |
} | |
} | |