项目地址: GitHub https://github.com/wusas/java-excel-velocity
项目结构:
├─.idea
│ ├─inspectionProfiles
│ ├─libraries
│ └─sonarlint
│ └─issuestore
├─.mvn
│ └─wrapper
├─src
│ ├─main
│ │ ├─java
│ │ │ └─com
│ │ │ └─example
│ │ │ └─springboot
│ │ │ ├─aopcontroller
│ │ │ ├─aspect
│ │ │ └─utils
│ │ └─resources
│ │ └─excelmodel
│ └─test
│ └─java
│ └─com
│ └─example
│ └─springboot
└─target
├─classes
│ ├─com
│ │ └─example
│ │ └─springboot
│ │ ├─aopcontroller
│ │ ├─aspect
│ │ └─utils
│ ├─excelmodel
│ └─META-INF
├─generated-sources
│ └─annotations
├─generated-test-sources
│ └─test-annotations
└─test-classes
└─com
└─example
└─springboot
项目分析
新建一个springboot项目(自行百度),导入相关依赖
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.7</version>
</dependency>
业务逻辑,接入到自己业务逻辑就可以实现了
package com.example.springboot.aopcontroller;
import com.example.springboot.utils.VelocityUtils;
import com.sun.media.jfxmedia.logging.Logger;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @Author
* @Description //TODO $
* @Date $ $
* @Param $
* @return $
**/
@RestController
@RequestMapping(value = "/aop")
public class AopController {
@ResponseBody
@GetMapping(value = "/hello")
public String hello(@RequestParam String name){
return "hello";
}
/**
* 导出excel报表
* @param response 页面请求
*/
@PostMapping(value = "attendanceReport/getlist")
public void attendanceReport(HttpServletResponse response) {
try {
//获取数据
Map<String, Object> paramMap = new HashMap<>();
Map<String,String> param = new HashMap<>();
param.put("name","wu");
param.put("age","11");
param.put("height","170");
param.put("weight","160");
List<Object> list = new ArrayList<>();
list.add(param);
String ss=" <NumberFormat ss:Format=\"_ "¥"* #,##0.00_ ;_ "¥"* \\-#,##0.00_ ;_ "¥"* "-"??_ ;_ @_ \"/>";
paramMap.put("ss", ss);
paramMap.put("summaryList",list);
paramMap.put("time","2019-01-01");
response.setContentType("application/vnd.ms-excel");
VelocityUtils.exportTemplate(response.getOutputStream(), paramMap, "excelmodel/summarycount.xml");
} catch (Exception e) {
try {
response.getWriter().write("export excel error");
} catch (IOException e1) {
Logger.logMsg(1,e1.getLocalizedMessage());
}
}
}
}
在xml里面,根据map里面的key值匹配到对应的单元格,对象集合的话通过foreach循环遍历出list里面的内容。
xml文件
对应的xml文件
<?xml version="1.0" encoding="utf-8"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882">
<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
<LastAuthor>16056</LastAuthor>
<Created>2019-07-25T02:16:00Z</Created>
<LastSaved>2019-07-26T02:55:46Z</LastSaved>
</DocumentProperties>
<CustomDocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
<KSOProductBuildVer dt:dt="string">2052-11.1.0.8894</KSOProductBuildVer>
</CustomDocumentProperties>
<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
<WindowWidth>19200</WindowWidth>
<WindowHeight>7070</WindowHeight>
<ProtectStructure>False</ProtectStructure>
<ProtectWindows>False</ProtectWindows>
</ExcelWorkbook>
<Styles>
<Style ss:ID="s11" ss:Name="百分比">
<NumberFormat ss:Format="0%"/>
</Style>
<Style ss:ID="s8" ss:Name="千位分隔"/>
<Style ss:ID="s4" ss:Name="货币">
$!{ss}
</Style>
<Style ss:ID="Default" ss:Name="Normal">
<Alignment ss:Vertical="Center"/>
<Borders/>
<Font ss:FontName="宋体" x:CharSet="134" ss:Size="11" ss:Color="#000000"/>
<Interior/>
<NumberFormat/>
<Protection/>
</Style>
<Style ss:ID="s24" ss:Name="输出">
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#3F3F3F"/>
<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#3F3F3F"/>
<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#3F3F3F"/>
<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#3F3F3F"/>
</Borders>
<Font ss:FontName="宋体" x:CharSet="0" ss:Size="11" ss:Color="#3F3F3F" ss:Bold="1"/>
<Interior ss:Color="#F2F2F2" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s12" ss:Name="已访问的超链接">
<Font ss:FontName="宋体" x:CharSet="0" ss:Size="11" ss:Color="#800080" ss:Underline="Single"/>
</Style>
<Style ss:ID="s7" ss:Name="差">
<Font ss:FontName="宋体" x:CharSet="0" ss:Size="11" ss:Color="#9C0006"/>
<Interior ss:Color="#FFC7CE" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s36" ss:Name="40% - 强调文字颜色 1">
<Font ss:FontName="宋体" x:CharSet="0" ss:Size="11" ss:Color="#000000"/>
<Interior ss:Color="#B8CCE4" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s35" ss:Name="20% - 强调文字颜色 1">
<Font ss:FontName="宋体" x:CharSet="0" ss:Size="11" ss:Color="#000000"/>
<Interior ss:Color="#DCE6F1" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s5" ss:Name="千位分隔[0]">
$!{ss}
</Style>
<Style ss:ID="s34" ss:Name="强调文字颜色 1">
<Font ss:FontName="宋体" x:CharSet="0" ss:Size="11" ss:Color="#FFFFFF"/>
<Interior ss:Color="#4F81BD" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s16" ss:Name="警告文本">
<Font ss:FontName="宋体" x:CharSet="0" ss:Size="11" ss:Color="#FF0000"/>
</Style>
<Style ss:ID="s3" ss:Name="输入">
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#7F7F7F"/>
<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#7F7F7F"/>
<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#7F7F7F"/>
<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#7F7F7F"/>
</Borders>
<Font ss:FontName="宋体" x:CharSet="0" ss:Size="11" ss:Color="#3F3F76"/>
<Interior ss:Color="#FFCC99" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s20" ss:Name="标题 2">
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#4F81BD"/>
</Borders>
<Font ss:FontName="宋体" x:CharSet="134" ss:Size="13" ss:Color="#1F497D" ss:Bold="1"/>
</Style>
<Style ss:ID="s17" ss:Name="标题">
<Font ss:FontName="宋体" x:CharSet="134" ss:Size="18" ss:Color="#1F497D" ss:Bold="1"/>
</Style>
<Style ss:ID="s1" ss:Name="货币[0]">
$!{ss}
</Style>
<Style ss:ID="s33" ss:Name="20% - 强调文字颜色 5">
<Font ss:FontName="宋体" x:CharSet="0" ss:Size="11" ss:Color="#000000"/>
<Interior ss:Color="#DAEEF3" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s2" ss:Name="20% - 强调文字颜色 3">
<Font ss:FontName="宋体" x:CharSet="0" ss:Size="11" ss:Color="#000000"/>
<Interior ss:Color="#EBF1DE" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s6" ss:Name="40% - 强调文字颜色 3">
<Font ss:FontName="宋体" x:CharSet="0" ss:Size="11" ss:Color="#000000"/>
<Interior ss:Color="#D8E4BC" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s43" ss:Name="40% - 强调文字颜色 4">
<Font ss:FontName="宋体" x:CharSet="0" ss:Size="11" ss:Color="#000000"/>
<Interior ss:Color="#CCC0DA" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s42" ss:Name="20% - 强调文字颜色 4">
<Font ss:FontName="宋体" x:CharSet="0" ss:Size="11" ss:Color="#000000"/>
<Interior ss:Color="#E4DFEC" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s9" ss:Name="60% - 强调文字颜色 3">
<Font ss:FontName="宋体" x:CharSet="0" ss:Size="11" ss:Color="#FFFFFF"/>
<Interior ss:Color="#C4D79B" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s32" ss:Name="适中">
<Font ss:FontName="宋体" x:CharSet="0" ss:Size="11" ss:Color="#9C6500"/>
<Interior ss:Color="#FFEB9C" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s18" ss:Name="解释性文本">
<Font ss:FontName="宋体" x:CharSet="0" ss:Size="11" ss:Color="#7F7F7F" ss:Italic="1"/>
</Style>
<Style ss:ID="s10" ss:Name="超链接">
<Font ss:FontName="宋体" x:CharSet="0" ss:Size="11" ss:Color="#0000FF" ss:Underline="Single"/>
</Style>
<Style ss:ID="s31" ss:Name="好">
<Font ss:FontName="宋体" x:CharSet="0" ss:Size="11" ss:Color="#006100"/>
<Interior ss:Color="#C6EFCE" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s15" ss:Name="标题 4">
<Font ss:FontName="宋体" x:CharSet="134" ss:Size="11" ss:Color="#1F497D" ss:Bold="1"/>
</Style>
<Style ss:ID="s13" ss:Name="注释">
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#B2B2B2"/>
<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#B2B2B2"/>
<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#B2B2B2"/>
<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#B2B2B2"/>
</Borders>
<Interior ss:Color="#FFFFCC" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s46" ss:Name="60% - 强调文字颜色 5">
<Font ss:FontName="宋体" x:CharSet="0" ss:Size="11" ss:Color="#FFFFFF"/>
<Interior ss:Color="#92CDDC" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s38" ss:Name="40% - 强调文字颜色 2">
<Font ss:FontName="宋体" x:CharSet="0" ss:Size="11" ss:Color="#000000"/>
<Interior ss:Color="#E6B8B7" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s14" ss:Name="60% - 强调文字颜色 2">
<Font ss:FontName="宋体" x:CharSet="0" ss:Size="11" ss:Color="#FFFFFF"/>
<Interior ss:Color="#DA9694" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s29" ss:Name="链接单元格">
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Double" ss:Weight="3" ss:Color="#FF8001"/>
</Borders>
<Font ss:FontName="宋体" x:CharSet="0" ss:Size="11" ss:Color="#FA7D00"/>
</Style>
<Style ss:ID="s25" ss:Name="计算">
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#7F7F7F"/>
<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#7F7F7F"/>
<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#7F7F7F"/>
<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#7F7F7F"/>
</Borders>
<Font ss:FontName="宋体" x:CharSet="0" ss:Size="11" ss:Color="#FA7D00" ss:Bold="1"/>
<Interior ss:Color="#F2F2F2" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s19" ss:Name="标题 1">
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#4F81BD"/>
</Borders>
<Font ss:FontName="宋体" x:CharSet="134" ss:Size="15" ss:Color="#1F497D" ss:Bold="1"/>
</Style>
<Style ss:ID="s44" ss:Name="强调文字颜色 5">
<Font ss:FontName="宋体" x:CharSet="0" ss:Size="11" ss:Color="#FFFFFF"/>
<Interior ss:Color="#4BACC6" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s23" ss:Name="60% - 强调文字颜色 4">
<Font ss:FontName="宋体" x:CharSet="0" ss:Size="11" ss:Color="#FFFFFF"/>
<Interior ss:Color="#B1A0C7" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s21" ss:Name="60% - 强调文字颜色 1">
<Font ss:FontName="宋体" x:CharSet="0" ss:Size="11" ss:Color="#FFFFFF"/>
<Interior ss:Color="#95B3D7" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s30" ss:Name="汇总">
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Double" ss:Weight="3" ss:Color="#4F81BD"/>
<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#4F81BD"/>
</Borders>
<Font ss:FontName="宋体" x:CharSet="0" ss:Size="11" ss:Color="#000000" ss:Bold="1"/>
</Style>
<Style ss:ID="s26" ss:Name="检查单元格">
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Double" ss:Weight="3" ss:Color="#3F3F3F"/>
<Border ss:Position="Left" ss:LineStyle="Double" ss:Weight="3" ss:Color="#3F3F3F"/>
<Border ss:Position="Right" ss:LineStyle="Double" ss:Weight="3" ss:Color="#3F3F3F"/>
<Border ss:Position="Top" ss:LineStyle="Double" ss:Weight="3" ss:Color="#3F3F3F"/>
</Borders>
<Font ss:FontName="宋体" x:CharSet="0" ss:Size="11" ss:Color="#FFFFFF" ss:Bold="1"/>
<Interior ss:Color="#A5A5A5" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s22" ss:Name="标题 3">
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#A7BFDE"/>
</Borders>
<Font ss:FontName="宋体" x:CharSet="134" ss:Size="11" ss:Color="#1F497D" ss:Bold="1"/>
</Style>
<Style ss:ID="s40" ss:Name="强调文字颜色 4">
<Font ss:FontName="宋体" x:CharSet="0" ss:Size="11" ss:Color="#FFFFFF"/>
<Interior ss:Color="#8064A2" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s27" ss:Name="20% - 强调文字颜色 6">
<Font ss:FontName="宋体" x:CharSet="0" ss:Size="11" ss:Color="#000000"/>
<Interior ss:Color="#FDE9D9" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s49" ss:Name="60% - 强调文字颜色 6">
<Font ss:FontName="宋体" x:CharSet="0" ss:Size="11" ss:Color="#FFFFFF"/>
<Interior ss:Color="#FABF8F" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s41" ss:Name="常规 50">
<Alignment ss:Vertical="Bottom"/>
<Borders/>
<Font ss:FontName="宋体" x:CharSet="134" ss:Size="12"/>
<Interior/>
<NumberFormat ss:Format="[$-F800]dddd\,\ mmmm\ dd\,\ yyyy"/>
<Protection/>
</Style>
<Style ss:ID="s28" ss:Name="强调文字颜色 2">
<Font ss:FontName="宋体" x:CharSet="0" ss:Size="11" ss:Color="#FFFFFF"/>
<Interior ss:Color="#C0504D" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s50" ss:Name="常规_Sheet1">
<Alignment ss:Vertical="Center"/>
<Borders/>
<Font ss:FontName="宋体" x:CharSet="134" ss:Size="12"/>
<Interior/>
<NumberFormat ss:Format="[$-F800]dddd\,\ mmmm\ dd\,\ yyyy"/>
<Protection/>
</Style>
<Style ss:ID="s45" ss:Name="40% - 强调文字颜色 5">
<Font ss:FontName="宋体" x:CharSet="0" ss:Size="11" ss:Color="#000000"/>
<Interior ss:Color="#B7DEE8" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s37" ss:Name="20% - 强调文字颜色 2">
<Font ss:FontName="宋体" x:CharSet="0" ss:Size="11" ss:Color="#000000"/>
<Interior ss:Color="#F2DCDB" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s48" ss:Name="40% - 强调文字颜色 6">
<Font ss:FontName="宋体" x:CharSet="0" ss:Size="11" ss:Color="#000000"/>
<Interior ss:Color="#FCD5B4" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s47" ss:Name="强调文字颜色 6">
<Font ss:FontName="宋体" x:CharSet="0" ss:Size="11" ss:Color="#FFFFFF"/>
<Interior ss:Color="#F79646" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s39" ss:Name="强调文字颜色 3">
<Font ss:FontName="宋体" x:CharSet="0" ss:Size="11" ss:Color="#FFFFFF"/>
<Interior ss:Color="#9BBB59" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s51">
<Alignment ss:Vertical="Center"/>
<Borders/>
<Font ss:FontName="宋体" x:CharSet="134" ss:Size="11" ss:Color="#000000"/>
<Interior/>
<NumberFormat/>
<Protection/>
</Style>
<Style ss:ID="s52">
<Alignment ss:Horizontal="Center" ss:Vertical="Bottom"/>
<Borders>
<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="2"/>
</Borders>
<Font ss:FontName="宋体" x:CharSet="134" ss:Size="22" ss:Color="#FFC000"/>
<Interior/>
<NumberFormat/>
<Protection/>
</Style>
<Style ss:ID="s53">
<Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:WrapText="1"/>
<Borders>
<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="2"/>
<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="2"/>
</Borders>
<Font ss:FontName="微软雅黑" x:CharSet="134" ss:Size="10"/>
<Interior ss:Color="#FFFFFF" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s54">
<Alignment ss:Horizontal="Center" ss:Vertical="Center"/>
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="2"/>
</Borders>
<Font ss:FontName="微软雅黑" x:CharSet="134" ss:Size="10" ss:Bold="1"/>
<Interior ss:Color="#FFFFFF" ss:Pattern="Solid"/>
<NumberFormat ss:Format="@"/>
</Style>
<Style ss:ID="s55">
<Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:WrapText="1"/>
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="2"/>
</Borders>
<Font ss:FontName="微软雅黑" x:CharSet="134" ss:Size="10" ss:Bold="1"/>
<Interior ss:Color="#FFFFFF" ss:Pattern="Solid"/>
<NumberFormat ss:Format="@"/>
</Style>
<Style ss:ID="s56">
<Alignment ss:Horizontal="Center" ss:Vertical="Center"/>
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="2"/>
</Borders>
<Font ss:FontName="微软雅黑" x:CharSet="134" ss:Size="10" ss:Bold="1"/>
<Interior ss:Color="#FFFFFF" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s57" ss:Parent="s50">
<Alignment ss:Horizontal="Center" ss:Vertical="Center"/>
<Borders>
<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
</Borders>
<Font ss:FontName="微软雅黑" x:CharSet="134" ss:Size="9" ss:Bold="1"/>
<Interior ss:Color="#FFFFFF" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s58" ss:Parent="s50">
<Alignment ss:Horizontal="Center" ss:Vertical="Center"/>
<Borders>
<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
</Borders>
<Font ss:FontName="微软雅黑" x:CharSet="134" ss:Size="9" ss:Bold="1"/>
<Interior ss:Color="#FFFFFF" ss:Pattern="Solid"/>
<NumberFormat ss:Format="@"/>
</Style>
<Style ss:ID="s59">
<Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:WrapText="1"/>
<Borders>
<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
</Borders>
<Font ss:FontName="微软雅黑" x:CharSet="134" ss:Size="9" ss:Bold="1"/>
<Interior ss:Color="#FFFFFF" ss:Pattern="Solid"/>
<NumberFormat ss:Format="@"/>
</Style>
<Style ss:ID="s60">
<Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:WrapText="1"/>
<Borders>
<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
</Borders>
<Font ss:FontName="微软雅黑" x:CharSet="134" ss:Size="9" ss:Bold="1"/>
<Interior ss:Color="#FFFFFF" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s61">
<Alignment ss:Horizontal="Center" ss:Vertical="Center"/>
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
</Borders>
<Font ss:FontName="宋体" x:CharSet="134" ss:Size="12" ss:Color="#000000"/>
<Interior ss:Color="#FFFFFF" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s62" ss:Parent="s41">
<Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:ShrinkToFit="1"/>
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
</Borders>
<Font ss:FontName="宋体" x:CharSet="134" ss:Size="12" ss:Color="#000000"/>
<Interior ss:Color="#FFFFFF" ss:Pattern="Solid"/>
<NumberFormat ss:Format="@"/>
</Style>
<Style ss:ID="s63" ss:Parent="s41">
<Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:ShrinkToFit="1"/>
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
</Borders>
<Font ss:FontName="宋体" x:CharSet="134" ss:Size="12" ss:Color="#000000"/>
<Interior ss:Color="#FFFFFF" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s64">
<Alignment ss:Horizontal="Center" ss:Vertical="Center"/>
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="2"/>
</Borders>
<Font ss:FontName="微软雅黑" x:CharSet="134" ss:Size="10" ss:Bold="1"/>
<Interior ss:Color="#FFFFFF" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s65">
<Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:WrapText="1"/>
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
</Borders>
<Font ss:FontName="微软雅黑" x:CharSet="134" ss:Size="10" ss:Bold="1"/>
<Interior ss:Color="#FFFFFF" ss:Pattern="Solid"/>
<NumberFormat ss:Format="@"/>
</Style>
<Style ss:ID="s66">
<Alignment ss:Horizontal="Center" ss:Vertical="Center"/>
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
</Borders>
<Font ss:FontName="微软雅黑" x:CharSet="134" ss:Size="10" ss:Bold="1"/>
<Interior ss:Color="#FFFFFF" ss:Pattern="Solid"/>
<NumberFormat ss:Format="@"/>
</Style>
<Style ss:ID="s67">
<Alignment ss:Horizontal="Center" ss:Vertical="Center"/>
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
</Borders>
<Font ss:FontName="微软雅黑" x:CharSet="134" ss:Size="10" ss:Bold="1"/>
<Interior ss:Color="#FFFFFF" ss:Pattern="Solid"/>
<NumberFormat ss:Format="@"/>
</Style>
<Style ss:ID="s68">
<Alignment ss:Horizontal="Center" ss:Vertical="Bottom"/>
<Borders>
<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="2"/>
</Borders>
<Font ss:FontName="宋体" x:CharSet="134" ss:Size="22" ss:Color="#FFC000"/>
<Interior/>
<NumberFormat/>
<Protection/>
</Style>
<Style ss:ID="s69">
<Alignment ss:Horizontal="Center" ss:Vertical="Center"/>
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="2"/>
</Borders>
<Font ss:FontName="微软雅黑" x:CharSet="134" ss:Size="10" ss:Bold="1"/>
<Interior ss:Color="#FFFFFF" ss:Pattern="Solid"/>
<NumberFormat ss:Format="@"/>
</Style>
<Style ss:ID="s70">
<Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:WrapText="1"/>
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="2"/>
</Borders>
<Font ss:FontName="微软雅黑" x:CharSet="134" ss:Size="10" ss:Bold="1"/>
<Interior ss:Color="#FFFFFF" ss:Pattern="Solid"/>
<NumberFormat ss:Format="@"/>
</Style>
<Style ss:ID="s71">
<Alignment ss:Horizontal="Center" ss:Vertical="Center"/>
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="2"/>
</Borders>
<Font ss:FontName="微软雅黑" x:CharSet="134" ss:Size="10" ss:Bold="1"/>
<Interior ss:Color="#FFFFFF" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s72">
<Alignment ss:Horizontal="Center" ss:Vertical="Center"/>
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="2"/>
</Borders>
<Font ss:FontName="微软雅黑" x:CharSet="134" ss:Size="10" ss:Bold="1"/>
<Interior ss:Color="#FFFFFF" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s73">
<Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:WrapText="1"/>
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
</Borders>
<Font ss:FontName="微软雅黑" x:CharSet="134" ss:Size="10" ss:Bold="1"/>
<Interior ss:Color="#FFFFFF" ss:Pattern="Solid"/>
<NumberFormat ss:Format="@"/>
</Style>
<Style ss:ID="s74">
<Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:WrapText="1"/>
<Borders>
<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="2"/>
<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="2"/>
</Borders>
<Font ss:FontName="微软雅黑" x:CharSet="134" ss:Size="10"/>
<Interior ss:Color="#FFFFFF" ss:Pattern="Solid"/>
</Style>
</Styles>
<Worksheet ss:Name="Sheet1">
#set($deviceRowCount = (2 + ${summaryList.size()}) )
<Table ss:ExpandedColumnCount="21" ss:ExpandedRowCount="4" x:FullColumns="1" x:FullRows="1" ss:DefaultColumnWidth="49.5" ss:DefaultRowHeight="14">
<Column ss:Index="12" ss:StyleID="Default" ss:AutoFitWidth="0" ss:Width="84"/>
<Row ss:Height="28.25">
<Cell ss:StyleID="s68" ss:MergeAcross="20">
<Data ss:Type="String">统计$!{time}</Data>
</Cell>
</Row>
<Row ss:Height="15.25">
<Cell ss:StyleID="s74" ss:MergeDown="1">
<Data ss:Type="String">序 号</Data>
</Cell>
<Cell ss:StyleID="s69" ss:MergeAcross="2">
<Data ss:Type="String">姓名
</Data>
</Cell>
<Cell ss:StyleID="s70" ss:MergeAcross="1">
<Data ss:Type="String">年龄</Data>
</Cell>
<Cell ss:StyleID="s71" ss:MergeAcross="5">
<Data ss:Type="String">身高)</Data>
</Cell>
</Row>
<Row>
<Cell ss:Index="2" ss:StyleID="s57">
<Data ss:Type="String">序号</Data>
</Cell>
<Cell ss:StyleID="s57">
<Data ss:Type="String">姓名</Data>
</Cell>
<Cell ss:StyleID="s58">
<Data ss:Type="String">年龄</Data>
</Cell>
<Cell ss:StyleID="s59">
<Data ss:Type="String">身高</Data>
</Cell>
<Cell ss:StyleID="s59">
<Data ss:Type="String">实出勤天数</Data>
</Cell>
</Row>
#foreach($summary in ${summaryList})
<Row ss:Height="15">
<Cell ss:StyleID="s63">
<Data ss:Type="String">$!{summary.weight}</Data>
</Cell>
<Cell ss:StyleID="s61">
<Data ss:Type="Number">$!{summary.name}</Data>
</Cell>
<Cell ss:StyleID="s62">
<Data ss:Type="String">$!{summary.age}</Data>
</Cell>
<Cell ss:StyleID="s63">
<Data ss:Type="String">$!{summary.height}</Data>
</Cell>
</Row>
#end
</Table>
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
<PageSetup>
<Header x:Margin="0.3"/>
<Footer x:Margin="0.3"/>
<PageMargins x:Left="0.7" x:Right="0.7" x:Top="0.75" x:Bottom="0.75"/>
</PageSetup>
<Selected/>
<TopRowVisible>0</TopRowVisible>
<LeftColumnVisible>0</LeftColumnVisible>
<PageBreakZoom>100</PageBreakZoom>
<Panes>
<Pane>
<Number>3</Number>
<ActiveRow>12</ActiveRow>
<ActiveCol>13</ActiveCol>
<RangeSelection>R13C14</RangeSelection>
</Pane>
</Panes>
<ProtectObjects>False</ProtectObjects>
<ProtectScenarios>False</ProtectScenarios>
</WorksheetOptions>
</Worksheet>
<Worksheet ss:Name="Sheet2">
<Table ss:ExpandedColumnCount="1" ss:ExpandedRowCount="1" x:FullColumns="1" x:FullRows="1" ss:DefaultColumnWidth="49.5" ss:DefaultRowHeight="14"/>
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
<PageSetup>
<Header x:Margin="0.3"/>
<Footer x:Margin="0.3"/>
<PageMargins x:Left="0.7" x:Right="0.7" x:Top="0.75" x:Bottom="0.75"/>
</PageSetup>
<TopRowVisible>0</TopRowVisible>
<LeftColumnVisible>0</LeftColumnVisible>
<PageBreakZoom>100</PageBreakZoom>
<ProtectObjects>False</ProtectObjects>
<ProtectScenarios>False</ProtectScenarios>
</WorksheetOptions>
</Worksheet>
<Worksheet ss:Name="Sheet3">
<Table ss:ExpandedColumnCount="1" ss:ExpandedRowCount="1" x:FullColumns="1" x:FullRows="1" ss:DefaultColumnWidth="49.5" ss:DefaultRowHeight="14"/>
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
<PageSetup>
<Header x:Margin="0.3"/>
<Footer x:Margin="0.3"/>
<PageMargins x:Left="0.7" x:Right="0.7" x:Top="0.75" x:Bottom="0.75"/>
</PageSetup>
<TopRowVisible>0</TopRowVisible>
<LeftColumnVisible>0</LeftColumnVisible>
<PageBreakZoom>100</PageBreakZoom>
<ProtectObjects>False</ProtectObjects>
<ProtectScenarios>False</ProtectScenarios>
</WorksheetOptions>
</Worksheet>
</Workbook>