【仅供内部供应商使用,不提供对外解答和培训】
...
可以用于导出的接口比较多,而ExportOperateProvider则主要用于新文件类型的导出使用。使用也跟一般的产品导出一致,通过URL中指定format参数调用。
该接口用于单一类型导出的处理场景,对于多种导出类型需要同时处理的可参见ExportExtensionProcessor接口
| Code Block | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
package com.fr.report.fun;
import com.fr.stable.fun.mark.Mutable;
import com.fr.web.core.reserve.Operate;
/**
* Created by richie on 16/1/19.
* 自定义导出方式接口,推荐使用format=xxx的方式(xxx表示唯一的导出方式)
*/
public interface ExportOperateProvider extends Mutable {
int CURRENT_LEVEL = 1;
String MARK_STRING = "ExportOperateProvider";
/**
* 导出准备操作
*
* @return 操作对象
*/
Operate operate();
/**
* 导出类型
*
* @return 类型
*/
String markType();
}
|
...
| Code Block | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
package com.fanruan.api.report.export;
import com.fr.io.collection.ExportCollection;
import com.fr.stable.web.SessionProvider;
import com.fr.web.core.reserve.Operate;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* @author richie
* @version 10.0
* Created by richie on 2019/9/26
* 导出接口的抽象类
*/
public abstract class BaseOperate implements Operate {
@Override
public void setContent(HttpServletRequest req, HttpServletResponse res, String fileName, boolean isEmbed) {
}
@Override
public void setContent(HttpServletRequest req, HttpServletResponse res, SessionProvider sessionProvider, String fileName, boolean isEmbed) {
this.setContent(req, res, fileName, isEmbed);
}
/**
* 导出的实体操作
*
* @param req http请求
* @param res http响应
* @param sessionProvider 模板访问会话信息
* @param fileName 文件名
* @return 导出实体操作对象
*/
@Override
public abstract ExportCollection newExportCollection(HttpServletRequest req, HttpServletResponse res, SessionProvider sessionProvider, String fileName);
}
|
...
demo地址:demo-export-operate-provider
com.fr.report.fun.ExportExtensionProcessor
com.fr.stable.fun.ExcelExportCellValueProvider
com.fr.form.stable.FormExportProcessor
com.fr.report.fun.ExcelExportAppProvider
com.fr.report.fun.CommentExcelProcessor
com.fr.io.exporter.PDFExporterCreator
com.fr.report.fun.FormatActionProvider
免责声明:所有文档中的开源示例,均为开发者自行开发并提供。仅用于参考和学习使用,开发者和官方均无义务对开源案例所涉及的所有成果进行教学和指导。若作为商用一切后果责任由使用者自行承担。
...