();
dataMap.put("name", "yacongliu");
String msg = IDocument.exportDoc(dataMap, "D:/test.doc");
System.out.println(msg);
}
```
##### 文档效果
见 imgs 文件夹内图片
#### 接口调用说明
设计`IDocument` 文档接口,定义文档操作方法:导出word到本地以及响应服务端提供下载。
```
/**
* 〈word 操作接口〉
* 〈.doc〉
*
* @author yacong_liu
* @create 2019/3/18
* @since 1.0.0
*/
package com.kingdee.shr.doc;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
public interface IDocument {
/**
* 导出word到本地
*
* @param dataMap 数据模型
* @param filePath 文件路径
* @return
*/
String exportDoc(Map, ?> dataMap, String filePath);
/**
* 导出word响应到服务端Response
*
* @param docName 文档名称
* @param dataMap 数据模型
* @param response HttpServletResponse
* @return
*/
String exportDoc(String docName, Map, ?> dataMap, HttpServletResponse response);
}
```
接口实现类`com.kingdee.shr.doc.impl.FreemarkerService` 进行具体的文档操作编码。
工厂类`DocumentFactory` 提供接口实例 采用静态工厂方法模式
```
/**
* Copyright (C), 2016-2019
* FileName: DocumentFactory
* Author: yacnog_liu
* Date: 2019/3/19 8:43
* Description: DocumentFactory
*
* 设计模式-静态工厂方法模式
*/
package com.kingdee.shr.doc;
import com.kingdee.shr.doc.impl.FreemarkerService;
public class DocumentFactory {
public static IDocument produceFreemarker() {
return new FreemarkerService();
}
}
```
**接口调用示例**
```
@Test
public void exportDocFactory() throws Exception {
IDocument IDocument = DocumentFactory.produceFreemarker();
Map dataMap = new HashMap(2);
dataMap.put("name", "yacong_liu");
String msg = IDocument.exportDoc(dataMap, "D:/test.doc");
System.out.println(msg);
}
```
#### 参与贡献
1. Fork 本仓库
2. 新建 Feat_xxx 分支
3. 提交代码
4. 新建 Pull Request