不多解释直接上代码
前端:vue1.0
//导出检查单
exportCheckSheet(record) {
const hide = this.$message.loading("检查单生成中,请稍候。", 0);
downloadFile("http://127.0.0.1:8081/demo" + "/url", record.projectName + '检查单.docx', record).finally(() => {
hide();
})
},
js下载方法
/**
* 下载文件
* @param url 文件路径
* @param fileName 文件名
* @param parameter
* @returns {*}
*/
export function downloadFile(url, fileName, parameter) {
return downFile(url, parameter).then((data) => {
if (!data || data.size === 0) {
Vue.prototype['$message'].warning('文件下载失败')
return
}
if (typeof window.navigator.msSaveBlob !== 'undefined') {
window.navigator.msSaveBlob(new Blob([data]), fileName)
} else {
let url = window.URL.createObjectURL(new Blob([data]))
let link = document.createElement('a')
link.style.display = 'none'
link.href = url
link.setAttribute('download', fileName)
document.body.appendChild(link)
link.click()
document.body.removeChild(link) //下载完成移除元素
window.URL.revokeObjectURL(url) //释放掉blob对象
}
})
}
/**
* 下载文件 用于导出
* @param url
* @param parameter
* @returns {*}
*/
export function downFile(url,parameter){
return axios({
url: url,
params: parameter,
method:'get' ,
responseType: 'blob'
})
}
后端接口
/**
* @Title exportCheckSheet
* @Description 整改通知单考核检查表
* @author guo
* @date 2023/11/8 11:09
* @param request
* @param instanceItem
* @return
*/
@RequestMapping(value = "/exportCheckSheet")
public void exportCheckSheet(HttpServletRequest request, HttpServletResponse response, AssessAdviceInstanceItem instanceItem) {
// 查询项目详情
instanceItem = instanceItemService.getById(instanceItem.getId());
if(instanceItem==null) {
throw new JeecgBootException("未找到对应数据!");
}
SimpleDateFormat nian = new SimpleDateFormat("yyyy年MM月dd日");
// 查询考核信息
AssessAdviceInstance instance = instanceService.getById(instanceItem.getInstanceId());
// 声明打分关联数据
AssessAdviceSheetScoreRel rel = new AssessAdviceSheetScoreRel();
// 表单id
rel.setSheetId(instance.getSheetId());
// 查询所有打分明细
List<AssessAdviceSheetItem> list = assessAdviceSheetItemService.queryListProject(rel);
// 设置排序
for(int i=0; i< list.size();i++){
list.get(i).setId(String.valueOf(i+1));
// 设置前一条第一节点标题
if(i > 0){
item.setPreFirstTitle(list.get(i-1).getFirstTitle());
}else{
item.setPreFirstTitle("");
}
// 设置后一条第一节点标题
if(i < list.size()-1){
item.setNextFirstTitle(list.get(i+1).getFirstTitle());
}else{
item.setPreFirstTitle("");
}
}
Map<String, Object> data = new HashMap<>();
data.put("maplist", list);
data.put("projectName", instanceItem.getProjectName());
data.put("finalScore", instanceItem.getFinalScore());
data.put("createTime", nian.format(instanceItem.getCreateTime()));
try {
String wordPath = "E\\demo";
createWord(data, "check_sheet_ftl", wordPath, response);
} catch (Exception e) {
throw new JeecgBootException("导出失败!");
}
}
/**
* @Title createWord
* @Description 下载文件
* @author guo
* @date 2023/11/9 10:54
* @param dataMap
* @param templateName
* @param filePath
* @param response
* @return
*/
public void downLoadFile(Map<String, Object> dataMap,String templateName,String filePath, HttpServletResponse response) {
InputStream inputStream = createShowWord(dataMap, templateName, filePath);
OutputStream out = null;
try {
response.setContentType("application/msword");
response.setHeader("Content-Disposition", "attachment;filename=\"" + new String(templateName.getBytes("GBK"), "iso8859-1") + "\"");
response.setCharacterEncoding("utf-8");//此句非常关键,不然word文档全是乱码
out = response.getOutputStream();
response.setHeader("Content-Disposition", "attachment; filename="+"schoolReport"+".doc");
int b = 0;
byte[] buffer = new byte[1000000];
while (b != -1) {
b = inputStream.read(buffer);
if(b!=-1) {
out.write(buffer, 0, b);
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
inputStream.close();
out.close();
out.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* @Title createShowWord
* @Description 生成word
* @author guo
* @date 2023/11/9 10:56
* @param map
* @param templateName
* @param filePath
* @return
* @return: java.io.InputStream
*/
public static InputStream createShowWord ( Map <?, ?> map,String templateName,String filePath ) {
InputStream inputStream = null;
try {
Configuration configuration = new Configuration ();
configuration.setDefaultEncoding ( "UTF-8" );
// ftl模板文件
configuration.setDirectoryForTemplateLoading(new File(filePath)); // 模版文件前缀路径
// 获取模板
Template template = configuration.getTemplate(templateName + ".ftl", "utf-8"); // 模版名称
File outfile = File.createTempFile ( "schoolReport", ".doc" );
outfile.deleteOnExit ();
// 将模板和数据模型合并生成文件
Writer out = new BufferedWriter (new OutputStreamWriter ( new FileOutputStream ( outfile ), "UTF-8" ));
// 生成文件
template.process ( map, out );
out.flush ();
out.close ();
inputStream = new FileInputStream ( outfile );
} catch ( Exception e ) { e.printStackTrace (); }
return inputStream;
}
tfl模板
创建word文档
根据ftl赋值规则填写需要赋值的属性
将word另存为xml文件
然后将生成的xml文件重命名
然后编辑文件,将文件格式化一下
链接: https://c.runoob.com/front-end/710/
格式化之后,修改需要展示的内容
maplist:为后台代码方法(exportCheckSheet)中map集合(data)中的list集合(maplist);
把表格中原先的属性改为${item.id!“”},“??” :判空,“!‘’”:如果为null则展示’'.
根据不同的值展示不同的样式:
合并内容相同行
firstTitle:为后台代码方法(exportCheckSheet)中map集合(data)中的list集合(maplist)中属性的内容;
FTL常用标签及语法:
判断对象是否存在 。如: obj可以是任何类型的对象,像集合,实体类,属性等等
<#if obj??>…</#if>
<#if obj??> …<#else>…</#if>
或者
<#if obj?exists>…</#if>
<#ifobj?exists> …<#else>…</#if>
判断是否和某一个值相等
<#if obj?exists && obj.id==1>…</#if>
<#if obj?exists && obj.id == 1>…<#else>…</#if>
注: 必须先判断是否存在,才可比较相等,如果该指定的参数不存在还比较相等的话就回出错;
获取对象值
获取普通属性值:${(obj.属性名称)!} 或者 ${属性名称}
获取日期类值:${obj.属性名称?string(“yyyy-MM-dd HH:mm:ss”)}
获取金额类值(以数字20为例):
<#setting number_format=“percent”/> // 设置数字默认输出方式(‘percent’,百分比)
<#assign answer=20/> // 声明变量 answer 20
${answer?string} // 转换字符串输出 4,200%
${answer?string.number} // 转换数字输出 42
${answer?string.currency} // 转换货币输出 ¥42.00
${answer?string.percent} // 转换百分比输出 4,200%
集合
遍历集合:
<#list empList! as emp>
${emp.name!}
</#list>
.
可以这样遍历集合:
<#list 0…(empList!?size-1) as i>
${empList[i].name!}
</#list>
.
与jstl循环类似,也可以访问循环的状态。
empList?size // 取集合的长度
emp_index: // int类型,当前对象的索引值
emp_has_next: // boolean类型,是否存在下一个对象
.
使用<#break>跳出循环
<#if emp_index = 0><#break></#if>
.
集合长度判断
<#if empList?size != 0></#if> // 判断=的时候,注意只要一个=符号,而不是==
下边贴上ftl代码
<w:tr>
<w:tblPrEx>
<w:tblBorders>
<w:top w:val="single" w:color="auto" w:sz="12" w:space="0"/>
<w:left w:val="single" w:color="auto" w:sz="12" w:space="0"/>
<w:bottom w:val="single" w:color="auto" w:sz="12" w:space="0"/>
<w:right w:val="single" w:color="auto" w:sz="12" w:space="0"/>
<w:insideH w:val="single" w:color="auto" w:sz="6" w:space="0"/>
<w:insideV w:val="single" w:color="auto" w:sz="6" w:space="0"/>
</w:tblBorders>
<w:tblCellMar>
<w:top w:w="0" w:type="dxa"/>
<w:left w:w="108" w:type="dxa"/>
<w:bottom w:w="0" w:type="dxa"/>
<w:right w:w="108" w:type="dxa"/>
</w:tblCellMar>
</w:tblPrEx>
<w:trPr>
<w:cantSplit/>
<w:trHeight w:val="509" w:hRule="atLeast"/>
<w:jc w:val="center"/>
</w:trPr>
<w:tc>
<w:tcPr>
<w:tcW w:w="200" w:type="pct"/>
<w:tcBorders>
<w:top w:val="single" w:color="auto" w:sz="6" w:space="0"/>
<w:left w:val="single" w:color="auto" w:sz="12" w:space="0"/>
<w:bottom w:val="single" w:color="auto" w:sz="12" w:space="0"/>
<w:right w:val="single" w:color="auto" w:sz="12" w:space="0"/>
</w:tcBorders>
<w:vAlign w:val="center"/>
</w:tcPr>
<w:p>
<w:pPr>
<w:pStyle w:val="10"/>
<w:autoSpaceDE w:val="0"/>
<w:autoSpaceDN w:val="0"/>
<w:adjustRightInd w:val="0"/>
<w:spacing w:line="240" w:lineRule="auto"/>
<w:ind w:firstLine="0" w:firstLineChars="0"/>
<w:jc w:val="center"/>
<w:rPr>
<w:rFonts w:ascii="仿宋" w:eastAsia="仿宋"/>
<w:color w:val="auto"/>
<w:sz w:val="24"/>
<w:szCs w:val="24"/>
<w:highlight w:val="none"/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts w:hint="eastAsia" w:ascii="仿宋" w:eastAsia="仿宋"/>
<w:color w:val="auto"/>
<w:sz w:val="24"/>
<w:szCs w:val="24"/>
<w:highlight w:val="none"/>
</w:rPr>
<w:t>序号</w:t>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="458" w:type="pct"/>
<w:tcBorders>
<w:top w:val="single" w:color="auto" w:sz="6" w:space="0"/>
<w:left w:val="single" w:color="auto" w:sz="12" w:space="0"/>
<w:bottom w:val="single" w:color="auto" w:sz="12" w:space="0"/>
<w:right w:val="single" w:color="auto" w:sz="12" w:space="0"/>
</w:tcBorders>
<w:vAlign w:val="center"/>
</w:tcPr>
<w:p>
<w:pPr>
<w:pStyle w:val="10"/>
<w:autoSpaceDE w:val="0"/>
<w:autoSpaceDN w:val="0"/>
<w:adjustRightInd w:val="0"/>
<w:spacing w:line="240" w:lineRule="auto"/>
<w:ind w:firstLine="0" w:firstLineChars="0"/>
<w:jc w:val="center"/>
<w:rPr>
<w:rFonts w:ascii="仿宋" w:eastAsia="仿宋"/>
<w:color w:val="auto"/>
<w:sz w:val="24"/>
<w:szCs w:val="24"/>
<w:highlight w:val="none"/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts w:hint="eastAsia" w:ascii="仿宋" w:eastAsia="仿宋"/>
<w:color w:val="auto"/>
<w:sz w:val="24"/>
<w:szCs w:val="24"/>
<w:highlight w:val="none"/>
</w:rPr>
<w:t>考核内容</w:t>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="3513" w:type="pct"/>
<w:gridSpan w:val="4"/>
<w:tcBorders>
<w:top w:val="single" w:color="auto" w:sz="6" w:space="0"/>
<w:left w:val="single" w:color="auto" w:sz="12" w:space="0"/>
<w:bottom w:val="single" w:color="auto" w:sz="12" w:space="0"/>
<w:right w:val="single" w:color="auto" w:sz="12" w:space="0"/>
</w:tcBorders>
<w:vAlign w:val="center"/>
</w:tcPr>
<w:p>
<w:pPr>
<w:pStyle w:val="10"/>
<w:autoSpaceDE w:val="0"/>
<w:autoSpaceDN w:val="0"/>
<w:adjustRightInd w:val="0"/>
<w:spacing w:line="240" w:lineRule="auto"/>
<w:ind w:firstLine="0" w:firstLineChars="0"/>
<w:jc w:val="center"/>
<w:rPr>
<w:rFonts w:hint="eastAsia" w:ascii="仿宋" w:hAnsi="Calibri" w:eastAsia="仿宋" w:cs="Times New Roman"/>
<w:color w:val="auto"/>
<w:kern w:val="2"/>
<w:sz w:val="24"/>
<w:szCs w:val="24"/>
<w:highlight w:val="none"/>
<w:lang w:val="en-US" w:eastAsia="zh-CN" w:bidi="ar-SA"/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts w:hint="eastAsia" w:ascii="仿宋" w:eastAsia="仿宋"/>
<w:color w:val="auto"/>
<w:sz w:val="24"/>
<w:szCs w:val="24"/>
<w:highlight w:val="none"/>
</w:rPr>
<w:t>考核指标</w:t>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="264" w:type="pct"/>
<w:tcBorders>
<w:top w:val="single" w:color="auto" w:sz="6" w:space="0"/>
<w:left w:val="single" w:color="auto" w:sz="12" w:space="0"/>
<w:bottom w:val="single" w:color="auto" w:sz="12" w:space="0"/>
<w:right w:val="single" w:color="auto" w:sz="12" w:space="0"/>
</w:tcBorders>
<w:vAlign w:val="center"/>
</w:tcPr>
<w:p>
<w:pPr>
<w:pStyle w:val="10"/>
<w:autoSpaceDE w:val="0"/>
<w:autoSpaceDN w:val="0"/>
<w:adjustRightInd w:val="0"/>
<w:spacing w:line="240" w:lineRule="auto"/>
<w:ind w:firstLine="0" w:firstLineChars="0"/>
<w:jc w:val="center"/>
<w:rPr>
<w:rFonts w:ascii="仿宋" w:eastAsia="仿宋"/>
<w:color w:val="auto"/>
<w:sz w:val="24"/>
<w:szCs w:val="24"/>
<w:highlight w:val="none"/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts w:hint="eastAsia" w:ascii="仿宋" w:eastAsia="仿宋"/>
<w:color w:val="auto"/>
<w:sz w:val="24"/>
<w:szCs w:val="24"/>
<w:highlight w:val="none"/>
</w:rPr>
<w:t>标准分值</w:t>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="260" w:type="pct"/>
<w:tcBorders>
<w:top w:val="single" w:color="auto" w:sz="6" w:space="0"/>
<w:left w:val="single" w:color="auto" w:sz="12" w:space="0"/>
<w:bottom w:val="single" w:color="auto" w:sz="12" w:space="0"/>
<w:right w:val="single" w:color="auto" w:sz="12" w:space="0"/>
</w:tcBorders>
</w:tcPr>
<w:p>
<w:pPr>
<w:pStyle w:val="10"/>
<w:autoSpaceDE w:val="0"/>
<w:autoSpaceDN w:val="0"/>
<w:adjustRightInd w:val="0"/>
<w:spacing w:line="240" w:lineRule="auto"/>
<w:ind w:firstLine="0" w:firstLineChars="0"/>
<w:jc w:val="center"/>
<w:rPr>
<w:rFonts w:ascii="仿宋" w:eastAsia="仿宋"/>
<w:color w:val="auto"/>
<w:sz w:val="24"/>
<w:szCs w:val="24"/>
<w:highlight w:val="none"/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts w:hint="eastAsia" w:ascii="仿宋" w:eastAsia="仿宋"/>
<w:color w:val="auto"/>
<w:sz w:val="24"/>
<w:szCs w:val="24"/>
<w:highlight w:val="none"/>
</w:rPr>
<w:t>实得分值</w:t>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="302" w:type="pct"/>
<w:tcBorders>
<w:top w:val="single" w:color="auto" w:sz="6" w:space="0"/>
<w:left w:val="single" w:color="auto" w:sz="12" w:space="0"/>
<w:bottom w:val="single" w:color="auto" w:sz="12" w:space="0"/>
<w:right w:val="single" w:color="auto" w:sz="12" w:space="0"/>
</w:tcBorders>
<w:vAlign w:val="center"/>
</w:tcPr>
<w:p>
<w:pPr>
<w:pStyle w:val="10"/>
<w:autoSpaceDE w:val="0"/>
<w:autoSpaceDN w:val="0"/>
<w:adjustRightInd w:val="0"/>
<w:spacing w:line="240" w:lineRule="auto"/>
<w:ind w:firstLine="0" w:firstLineChars="0"/>
<w:jc w:val="center"/>
<w:rPr>
<w:rFonts w:ascii="仿宋" w:eastAsia="仿宋"/>
<w:color w:val="auto"/>
<w:sz w:val="24"/>
<w:szCs w:val="24"/>
<w:highlight w:val="none"/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts w:hint="eastAsia" w:ascii="仿宋" w:eastAsia="仿宋"/>
<w:color w:val="auto"/>
<w:sz w:val="24"/>
<w:szCs w:val="24"/>
<w:highlight w:val="none"/>
</w:rPr>
<w:t>附注</w:t>
</w:r>
</w:p>
</w:tc>
</w:tr>
<#list maplist as item>
<w:tr>
<w:tblPrEx>
<w:tblBorders>
<w:top w:val="single" w:color="auto" w:sz="12" w:space="0"/>
<w:left w:val="single" w:color="auto" w:sz="12" w:space="0"/>
<w:bottom w:val="single" w:color="auto" w:sz="12" w:space="0"/>
<w:right w:val="single" w:color="auto" w:sz="12" w:space="0"/>
<w:insideH w:val="single" w:color="auto" w:sz="6" w:space="0"/>
<w:insideV w:val="single" w:color="auto" w:sz="6" w:space="0"/>
</w:tblBorders>
<w:tblCellMar>
<w:top w:w="0" w:type="dxa"/>
<w:left w:w="108" w:type="dxa"/>
<w:bottom w:w="0" w:type="dxa"/>
<w:right w:w="108" w:type="dxa"/>
</w:tblCellMar>
</w:tblPrEx>
<w:trPr>
<w:cantSplit/>
<w:trHeight w:val="567" w:hRule="atLeast"/>
<w:jc w:val="center"/>
</w:trPr>
<w:tc>
<w:tcPr>
<w:tcW w:w="200" w:type="pct"/>
<w:tcBorders>
<w:top w:val="single" w:color="auto" w:sz="6" w:space="0"/>
<w:left w:val="single" w:color="auto" w:sz="12" w:space="0"/>
<w:bottom w:val="single" w:color="auto" w:sz="12" w:space="0"/>
<w:right w:val="single" w:color="auto" w:sz="12" w:space="0"/>
</w:tcBorders>
<w:vAlign w:val="center"/>
</w:tcPr>
<w:p>
<w:pPr>
<w:pStyle w:val="10"/>
<w:autoSpaceDE w:val="0"/>
<w:autoSpaceDN w:val="0"/>
<w:adjustRightInd w:val="0"/>
<w:spacing w:line="240" w:lineRule="auto"/>
<w:ind w:firstLine="0" w:firstLineChars="0"/>
<w:jc w:val="center"/>
<w:rPr>
<w:rFonts w:hint="default" w:ascii="仿宋" w:hAnsi="仿宋" w:eastAsia="仿宋" w:cs="仿宋"/>
<w:b w:val="0"/>
<w:bCs w:val="0"/>
<w:color w:val="auto"/>
<w:sz w:val="21"/>
<w:szCs w:val="21"/>
<w:highlight w:val="none"/>
<w:lang w:val="en-US"/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts w:hint="eastAsia" w:ascii="仿宋_GB2312" w:hAnsi="宋体" w:eastAsia="仿宋_GB2312" w:cs="仿宋_GB2312"/>
<w:i w:val="0"/>
<w:iCs w:val="0"/>
<w:color w:val="000000"/>
<w:kern w:val="0"/>
<w:sz w:val="22"/>
<w:szCs w:val="22"/>
<w:u w:val="none"/>
<w:lang w:val="en-US" w:eastAsia="zh-CN" w:bidi="ar"/>
</w:rPr>
<w:t>${item.id!""}</w:t>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="458" w:type="pct"/>
<#--合并第一标题-->
<#if item.firstTitle == item.preFirstTitle>
<w:vMerge/>
<#else>
<w:vMerge w:val="restart"/>
</#if>
<w:tcBorders>
<w:top w:val="single" w:color="auto" w:sz="6" w:space="0"/>
<w:left w:val="single" w:color="auto" w:sz="12" w:space="0"/>
<w:bottom w:val="single" w:color="auto" w:sz="12" w:space="0"/>
<w:right w:val="single" w:color="auto" w:sz="12" w:space="0"/>
</w:tcBorders>
<w:vAlign w:val="center"/>
</w:tcPr>
<w:p>
<w:pPr>
<w:pStyle w:val="10"/>
<w:autoSpaceDE w:val="0"/>
<w:autoSpaceDN w:val="0"/>
<w:adjustRightInd w:val="0"/>
<w:spacing w:line="240" w:lineRule="auto"/>
<w:ind w:firstLine="0" w:firstLineChars="0"/>
<w:jc w:val="center"/>
<w:rPr>
<w:rFonts w:hint="default" w:ascii="仿宋" w:hAnsi="仿宋" w:eastAsia="仿宋" w:cs="仿宋"/>
<w:b w:val="0"/>
<w:bCs w:val="0"/>
<w:color w:val="auto"/>
<w:sz w:val="21"/>
<w:szCs w:val="21"/>
<w:highlight w:val="none"/>
<w:lang w:val="en-US"/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts w:hint="default" w:ascii="仿宋_GB2312" w:hAnsi="宋体" w:eastAsia="仿宋_GB2312" w:cs="仿宋_GB2312"/>
<w:i w:val="0"/>
<w:iCs w:val="0"/>
<w:color w:val="000000"/>
<w:kern w:val="0"/>
<w:sz w:val="22"/>
<w:szCs w:val="22"/>
<w:u w:val="none"/>
<w:lang w:val="en-US" w:eastAsia="zh-CN" w:bidi="ar"/>
</w:rPr>
<w:t>${item.firstTitle!""}</w:t>
</w:r>
</w:p>
</w:tc>
<#if item.title??>
<w:tc>
<w:tcPr>
<w:tcW w:w="911" w:type="pct"/>
<w:tcBorders>
<w:top w:val="single" w:color="auto" w:sz="6" w:space="0"/>
<w:left w:val="single" w:color="auto" w:sz="12" w:space="0"/>
<w:bottom w:val="single" w:color="auto" w:sz="12" w:space="0"/>
<w:right w:val="single" w:color="auto" w:sz="12" w:space="0"/>
</w:tcBorders>
<w:vAlign w:val="center"/>
</w:tcPr>
<w:p>
<w:pPr>
<w:keepNext w:val="0"/>
<w:keepLines w:val="0"/>
<w:widowControl w:val="0"/>
<w:numPr>
<w:ilvl w:val="0"/>
<w:numId w:val="0"/>
</w:numPr>
<w:suppressLineNumbers w:val="0"/>
<w:autoSpaceDE w:val="0"/>
<w:autoSpaceDN w:val="0"/>
<w:adjustRightInd w:val="0"/>
<w:spacing w:before="0" w:beforeAutospacing="0" w:after="0" w:afterAutospacing="0" w:line="240" w:lineRule="auto"/>
<w:ind w:leftChars="0" w:right="0" w:rightChars="0"/>
<w:jc w:val="center"/>
<w:rPr>
<w:rFonts w:hint="default" w:ascii="仿宋" w:hAnsi="仿宋" w:eastAsia="仿宋" w:cs="仿宋"/>
<w:b w:val="0"/>
<w:bCs w:val="0"/>
<w:color w:val="auto"/>
<w:sz w:val="21"/>
<w:szCs w:val="21"/>
<w:highlight w:val="none"/>
<w:lang w:val="en-US"/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts w:hint="default" w:ascii="仿宋_GB2312" w:hAnsi="宋体" w:eastAsia="仿宋_GB2312" w:cs="仿宋_GB2312"/>
<w:i w:val="0"/>
<w:iCs w:val="0"/>
<w:color w:val="000000"/>
<w:kern w:val="0"/>
<w:sz w:val="22"/>
<w:szCs w:val="22"/>
<w:u w:val="none"/>
<w:lang w:val="en-US" w:eastAsia="zh-CN" w:bidi="ar"/>
</w:rPr>
<w:t>${item.title!""}</w:t>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="2602" w:type="pct"/>
<w:gridSpan w:val="3"/>
<w:tcBorders>
<w:top w:val="single" w:color="auto" w:sz="6" w:space="0"/>
<w:left w:val="single" w:color="auto" w:sz="12" w:space="0"/>
<w:bottom w:val="single" w:color="auto" w:sz="12" w:space="0"/>
<w:right w:val="single" w:color="auto" w:sz="12" w:space="0"/>
</w:tcBorders>
<w:vAlign w:val="center"/>
</w:tcPr>
<#if item.scoreDescList??>
<#list item.scoreDescList as scoreDescItem>
<w:p>
<w:pPr>
<w:keepNext w:val="0"/>
<w:keepLines w:val="0"/>
<w:widowControl w:val="0"/>
<w:numPr>
<w:ilvl w:val="0"/>
<w:numId w:val="0"/>
</w:numPr>
<w:suppressLineNumbers w:val="0"/>
<w:autoSpaceDE w:val="0"/>
<w:autoSpaceDN w:val="0"/>
<w:adjustRightInd w:val="0"/>
<w:spacing w:before="0" w:beforeAutospacing="0" w:after="0" w:afterAutospacing="0" w:line="240" w:lineRule="auto"/>
<w:ind w:leftChars="0" w:right="0" w:rightChars="0"/>
<w:jc w:val="left"/>
<w:rPr>
<w:rFonts w:hint="default" w:ascii="仿宋" w:hAnsi="仿宋" w:eastAsia="仿宋" w:cs="仿宋"/>
<w:b w:val="0"/>
<w:bCs w:val="0"/>
<w:color w:val="auto"/>
<w:kern w:val="2"/>
<w:sz w:val="21"/>
<w:szCs w:val="21"/>
<w:highlight w:val="none"/>
<w:lang w:val="en-US" w:eastAsia="zh-CN" w:bidi="ar-SA"/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts w:hint="default" w:ascii="仿宋_GB2312" w:hAnsi="宋体" w:eastAsia="仿宋_GB2312" w:cs="仿宋_GB2312"/>
<w:i w:val="0"/>
<w:iCs w:val="0"/>
<w:color w:val="000000"/>
<w:kern w:val="0"/>
<w:sz w:val="22"/>
<w:szCs w:val="22"/>
<w:u w:val="none"/>
<w:lang w:val="en-US" w:eastAsia="zh-CN" w:bidi="ar"/>
</w:rPr>
<w:t>${scoreDescItem!""}</w:t>
</w:r>
<w:bookmarkStart w:id="0" w:name="_GoBack"/>
<w:bookmarkEnd w:id="0"/>
</w:p>
</#list>
<#else>
<w:p>
<w:pPr>
<w:keepNext w:val="0"/>
<w:keepLines w:val="0"/>
<w:widowControl w:val="0"/>
<w:numPr>
<w:ilvl w:val="0"/>
<w:numId w:val="0"/>
</w:numPr>
<w:suppressLineNumbers w:val="0"/>
<w:autoSpaceDE w:val="0"/>
<w:autoSpaceDN w:val="0"/>
<w:adjustRightInd w:val="0"/>
<w:spacing w:before="0" w:beforeAutospacing="0" w:after="0" w:afterAutospacing="0" w:line="240" w:lineRule="auto"/>
<w:ind w:leftChars="0" w:right="0" w:rightChars="0"/>
<w:jc w:val="left"/>
<w:rPr>
<w:rFonts w:hint="default" w:ascii="仿宋" w:hAnsi="仿宋" w:eastAsia="仿宋" w:cs="仿宋"/>
<w:b w:val="0"/>
<w:bCs w:val="0"/>
<w:color w:val="auto"/>
<w:kern w:val="2"/>
<w:sz w:val="21"/>
<w:szCs w:val="21"/>
<w:highlight w:val="none"/>
<w:lang w:val="en-US" w:eastAsia="zh-CN" w:bidi="ar-SA"/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts w:hint="default" w:ascii="仿宋_GB2312" w:hAnsi="宋体" w:eastAsia="仿宋_GB2312" w:cs="仿宋_GB2312"/>
<w:i w:val="0"/>
<w:iCs w:val="0"/>
<w:color w:val="000000"/>
<w:kern w:val="0"/>
<w:sz w:val="22"/>
<w:szCs w:val="22"/>
<w:u w:val="none"/>
<w:lang w:val="en-US" w:eastAsia="zh-CN" w:bidi="ar"/>
</w:rPr>
<w:t>${scoreDescs!""}</w:t>
</w:r>
<w:bookmarkStart w:id="0" w:name="_GoBack"/>
<w:bookmarkEnd w:id="0"/>
</w:p>
</#if>
</w:tc>
<#else>
<w:tc>
<w:tcPr>
<w:tcW w:w="3513" w:type="pct"/>
<w:gridSpan w:val="4"/>
<w:tcBorders>
<w:top w:val="single" w:color="auto" w:sz="6" w:space="0"/>
<w:left w:val="single" w:color="auto" w:sz="12" w:space="0"/>
<w:bottom w:val="single" w:color="auto" w:sz="12" w:space="0"/>
<w:right w:val="single" w:color="auto" w:sz="12" w:space="0"/>
</w:tcBorders>
<w:vAlign w:val="center"/>
</w:tcPr>
<#if item.scoreDescList??>
<#list item.scoreDescList as scoreDescItem>
<w:p>
<w:pPr>
<w:keepNext w:val="0"/>
<w:keepLines w:val="0"/>
<w:widowControl w:val="0"/>
<w:numPr>
<w:ilvl w:val="0"/>
<w:numId w:val="0"/>
</w:numPr>
<w:suppressLineNumbers w:val="0"/>
<w:autoSpaceDE w:val="0"/>
<w:autoSpaceDN w:val="0"/>
<w:adjustRightInd w:val="0"/>
<w:spacing w:before="0" w:beforeAutospacing="0" w:after="0" w:afterAutospacing="0" w:line="240" w:lineRule="auto"/>
<w:ind w:leftChars="0" w:right="0" w:rightChars="0"/>
<w:jc w:val="left"/>
<w:rPr>
<w:rFonts w:hint="default" w:ascii="仿宋" w:hAnsi="仿宋" w:eastAsia="仿宋" w:cs="仿宋"/>
<w:b w:val="0"/>
<w:bCs w:val="0"/>
<w:color w:val="auto"/>
<w:kern w:val="2"/>
<w:sz w:val="21"/>
<w:szCs w:val="21"/>
<w:highlight w:val="none"/>
<w:lang w:val="en-US" w:eastAsia="zh-CN" w:bidi="ar-SA"/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts w:hint="default" w:ascii="仿宋_GB2312" w:hAnsi="宋体" w:eastAsia="仿宋_GB2312" w:cs="仿宋_GB2312"/>
<w:i w:val="0"/>
<w:iCs w:val="0"/>
<w:color w:val="000000"/>
<w:kern w:val="0"/>
<w:sz w:val="22"/>
<w:szCs w:val="22"/>
<w:u w:val="none"/>
<w:lang w:val="en-US" w:eastAsia="zh-CN" w:bidi="ar"/>
</w:rPr>
<w:t>${scoreDescItem!""}</w:t>
</w:r>
<w:bookmarkStart w:id="0" w:name="_GoBack"/>
<w:bookmarkEnd w:id="0"/>
</w:p>
</#list>
<#else>
<w:p>
<w:pPr>
<w:keepNext w:val="0"/>
<w:keepLines w:val="0"/>
<w:widowControl w:val="0"/>
<w:numPr>
<w:ilvl w:val="0"/>
<w:numId w:val="0"/>
</w:numPr>
<w:suppressLineNumbers w:val="0"/>
<w:autoSpaceDE w:val="0"/>
<w:autoSpaceDN w:val="0"/>
<w:adjustRightInd w:val="0"/>
<w:spacing w:before="0" w:beforeAutospacing="0" w:after="0" w:afterAutospacing="0" w:line="240" w:lineRule="auto"/>
<w:ind w:leftChars="0" w:right="0" w:rightChars="0"/>
<w:jc w:val="left"/>
<w:rPr>
<w:rFonts w:hint="default" w:ascii="仿宋" w:hAnsi="仿宋" w:eastAsia="仿宋" w:cs="仿宋"/>
<w:b w:val="0"/>
<w:bCs w:val="0"/>
<w:color w:val="auto"/>
<w:kern w:val="2"/>
<w:sz w:val="21"/>
<w:szCs w:val="21"/>
<w:highlight w:val="none"/>
<w:lang w:val="en-US" w:eastAsia="zh-CN" w:bidi="ar-SA"/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts w:hint="default" w:ascii="仿宋_GB2312" w:hAnsi="宋体" w:eastAsia="仿宋_GB2312" w:cs="仿宋_GB2312"/>
<w:i w:val="0"/>
<w:iCs w:val="0"/>
<w:color w:val="000000"/>
<w:kern w:val="0"/>
<w:sz w:val="22"/>
<w:szCs w:val="22"/>
<w:u w:val="none"/>
<w:lang w:val="en-US" w:eastAsia="zh-CN" w:bidi="ar"/>
</w:rPr>
<w:t>${scoreDescs!""}</w:t>
</w:r>
<w:bookmarkStart w:id="0" w:name="_GoBack"/>
<w:bookmarkEnd w:id="0"/>
</w:p>
</#if>
</w:tc>
</#if>
<w:tc>
<w:tcPr>
<w:tcW w:w="264" w:type="pct"/>
<w:tcBorders>
<w:top w:val="single" w:color="auto" w:sz="6" w:space="0"/>
<w:left w:val="single" w:color="auto" w:sz="12" w:space="0"/>
<w:bottom w:val="single" w:color="auto" w:sz="12" w:space="0"/>
<w:right w:val="single" w:color="auto" w:sz="12" w:space="0"/>
</w:tcBorders>
<w:vAlign w:val="center"/>
</w:tcPr>
<w:p>
<w:pPr>
<w:pStyle w:val="10"/>
<w:autoSpaceDE w:val="0"/>
<w:autoSpaceDN w:val="0"/>
<w:adjustRightInd w:val="0"/>
<w:spacing w:line="240" w:lineRule="auto"/>
<w:ind w:firstLine="0" w:firstLineChars="0"/>
<w:jc w:val="center"/>
<w:rPr>
<w:rFonts w:hint="default" w:ascii="仿宋" w:hAnsi="仿宋" w:eastAsia="仿宋" w:cs="仿宋"/>
<w:b w:val="0"/>
<w:bCs w:val="0"/>
<w:color w:val="auto"/>
<w:sz w:val="21"/>
<w:szCs w:val="21"/>
<w:highlight w:val="none"/>
<w:lang w:val="en-US" w:eastAsia="zh-CN"/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts w:hint="default" w:ascii="仿宋_GB2312" w:hAnsi="宋体" w:eastAsia="仿宋_GB2312" w:cs="仿宋_GB2312"/>
<w:i w:val="0"/>
<w:iCs w:val="0"/>
<w:color w:val="000000"/>
<w:kern w:val="0"/>
<w:sz w:val="22"/>
<w:szCs w:val="22"/>
<w:u w:val="none"/>
<w:lang w:val="en-US" w:eastAsia="zh-CN" w:bidi="ar"/>
</w:rPr>
<w:t>${item.standardScore!""}</w:t>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="260" w:type="pct"/>
<w:tcBorders>
<w:top w:val="single" w:color="auto" w:sz="6" w:space="0"/>
<w:left w:val="single" w:color="auto" w:sz="12" w:space="0"/>
<w:bottom w:val="single" w:color="auto" w:sz="12" w:space="0"/>
<w:right w:val="single" w:color="auto" w:sz="12" w:space="0"/>
</w:tcBorders>
<w:vAlign w:val="center"/>
</w:tcPr>
<w:p>
<w:pPr>
<w:pStyle w:val="10"/>
<w:autoSpaceDE w:val="0"/>
<w:autoSpaceDN w:val="0"/>
<w:adjustRightInd w:val="0"/>
<w:spacing w:line="240" w:lineRule="auto"/>
<w:ind w:firstLine="0" w:firstLineChars="0"/>
<w:jc w:val="center"/>
<w:rPr>
<w:rFonts w:hint="default" w:ascii="仿宋" w:hAnsi="仿宋" w:eastAsia="仿宋" w:cs="仿宋"/>
<w:b w:val="0"/>
<w:bCs w:val="0"/>
<w:color w:val="auto"/>
<w:sz w:val="21"/>
<w:szCs w:val="21"/>
<w:highlight w:val="none"/>
<w:lang w:val="en-US"/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts w:hint="default" w:ascii="仿宋" w:hAnsi="仿宋" w:eastAsia="仿宋" w:cs="仿宋"/>
<w:b w:val="0"/>
<w:bCs w:val="0"/>
<w:color w:val="auto"/>
<w:sz w:val="21"/>
<w:szCs w:val="21"/>
<w:highlight w:val="none"/>
<w:lang w:val="en-US"/>
</w:rPr>
<w:t>${item.score!""}</w:t>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="302" w:type="pct"/>
<w:tcBorders>
<w:top w:val="single" w:color="auto" w:sz="6" w:space="0"/>
<w:left w:val="single" w:color="auto" w:sz="12" w:space="0"/>
<w:bottom w:val="single" w:color="auto" w:sz="12" w:space="0"/>
<w:right w:val="single" w:color="auto" w:sz="12" w:space="0"/>
</w:tcBorders>
<w:vAlign w:val="center"/>
</w:tcPr>
<w:p>
<w:pPr>
<w:pStyle w:val="10"/>
<w:autoSpaceDE w:val="0"/>
<w:autoSpaceDN w:val="0"/>
<w:adjustRightInd w:val="0"/>
<w:spacing w:line="240" w:lineRule="auto"/>
<w:ind w:firstLine="0" w:firstLineChars="0"/>
<w:jc w:val="center"/>
<w:rPr>
<w:rFonts w:hint="default" w:ascii="仿宋" w:hAnsi="仿宋" w:eastAsia="仿宋" w:cs="仿宋"/>
<w:b w:val="0"/>
<w:bCs w:val="0"/>
<w:color w:val="auto"/>
<w:sz w:val="21"/>
<w:szCs w:val="21"/>
<w:highlight w:val="none"/>
<w:lang w:val="en-US" w:eastAsia="zh-CN"/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts w:hint="default" w:ascii="仿宋_GB2312" w:hAnsi="宋体" w:eastAsia="仿宋_GB2312" w:cs="仿宋_GB2312"/>
<w:i w:val="0"/>
<w:iCs w:val="0"/>
<w:color w:val="000000"/>
<w:kern w:val="0"/>
<w:sz w:val="22"/>
<w:szCs w:val="22"/>
<w:u w:val="none"/>
<w:lang w:val="en-US" w:eastAsia="zh-CN" w:bidi="ar"/>
</w:rPr>
<w:t>${item.remark!""}</w:t>
</w:r>
</w:p>
</w:tc>
</w:tr>
</#list>