
# 1 产品概述
## 1.1产品介绍
导入导出框架,旨在提供一套统一的解决方案,预封装一批开箱即用的操作和插件接口,可以很方便的实现数据迁移、批量更新、数据抽取、数据备份、基础资料批量分配等功能,并统一对任务进行管理,生成执行日志。
业务领域使用这套统一的框架,可以无需关心后台线程的启动和管理,直接沿用平台已经封装好的功能界面。只需要专注于实现功能逻辑,提升开发效率,保障用户体验。
## 1.2 业务场景
1、修改导出文件的文件名
2、单据中展示的数据如果是动态加载(没有入库)的,这部分数据无法通过列表导出功能导出,但可以通过列表插件将数据添加进导出的文件中。
# 2 操作步骤
打开列表,找到【更多】>【导出数据(按列表)】菜单,点击下载(6.0及以下版本是引出数据(按列表)菜单)。

**如果存在多个模板,请选择你配置的导出模板下载。下载的excel格式同下图类似。**

**如果导出过程超过10分钟卡住不动,建议检查monitor日志查看是否报错中断。**
# 3 插件干预
## 方案:实现自定义列表插件
第一步:派生kd.bos.list.plugin.AbstractListPlugin类(或IListPlugin接口),实现插件干预执行类,重写下面两个方法:
```java
/** 导出文件前事件,目前只可以用来修改导出的文件名 */
public void beforeExportFile(BeforeExportFileEvent e) {}
/** 导出文件后事件,可以用来修改导出的文件内容,比如修改excel数据、格式、加密等 */
public void afterExportFile(ExportFileEvent e) {}
```
第二步:将上面这个实现类注册到列表插件中。

# 4 示例
```java
package kd.bos.designer;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.FillPatternType;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import kd.bos.form.events.BeforeExportFileEvent;
import kd.bos.form.events.ExportFileEvent;
import kd.bos.list.plugin.AbstractListPlugin;