FreeMarker实例讲解

如下为个人写的FreeMarker的Excel导出模板实例,用于导出数据到Excel文件中,文件以.flt为扩张名

<?xml version="1.0"?>
<?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">
 <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
  <Author>wpy</Author>
  <LastAuthor>wpy</LastAuthor>
  <Created>2015-04-10T18:30:22Z</Created>
  <Version>1.00</Version>
 </DocumentProperties>
 <OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office">
  <AllowPNG/>
 </OfficeDocumentSettings>
 <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
  <WindowHeight>10005</WindowHeight>
  <WindowWidth>10005</WindowWidth>
  <WindowTopX>120</WindowTopX>
  <WindowTopY>135</WindowTopY>
  <ProtectStructure>False</ProtectStructure>
  <ProtectWindows>False</ProtectWindows>
 </ExcelWorkbook>
 <Styles>
  <Style ss:ID="Default" ss:Name="Normal">
   <Alignment ss:Horizontal="Center" ss:Vertical="Center"/>
   <Borders/>
   <Font ss:FontName="宋体" x:CharSet="134" ss:Size="11" ss:Color="#000000"/>
   <Interior/>
   <NumberFormat/>
   <Protection/>
  </Style>
  <Style ss:ID="header">
   <Font ss:FontName="宋体" x:CharSet="134" ss:Size="11" ss:Color="#FFFFFF"
    ss:Bold="1"/>
   <Interior ss:Color="#000000" ss:Pattern="Solid"/>
  </Style>
  <Style ss:ID="content">
   <Borders>
    <Border ss:Position="Bottom" ss:LineStyle="Dot" ss:Weight="1"/>
    <Border ss:Position="Left" ss:LineStyle="Dot" ss:Weight="1"/>
    <Border ss:Position="Right" ss:LineStyle="Dot" ss:Weight="1"/>
    <Border ss:Position="Top" ss:LineStyle="Dot" ss:Weight="1"/>
   </Borders>
   <Interior ss:Color="#EEECE1" ss:Pattern="Solid"/>
  </Style>
 </Styles>

<#if (serversPayExpendList?size==0)>
 <Worksheet ss:Name="${reportName!}">
  <Table>
  	<Column ss:AutoFitWidth="0" ss:Width="100"/>
    <Column ss:AutoFitWidth="0" ss:Width="200"/>
    <Column ss:AutoFitWidth="0" ss:Width="200"/>
    <Column ss:AutoFitWidth="0" ss:Width="200"/>
    <Column ss:AutoFitWidth="0" ss:Width="200"/>
	<Row ss:AutoFitHeight="0">
		<Cell  ss:StyleID="header"><Data ss:Type="String">编号</Data></Cell>
    	<Cell  ss:StyleID="header"><Data ss:Type="String">服务器名</Data></Cell>
    	<Cell  ss:StyleID="header"><Data ss:Type="String">充值元宝汇总</Data></Cell>
    	<Cell  ss:StyleID="header"><Data ss:Type="String">消费元宝汇总</Data></Cell>
    	<Cell  ss:StyleID="header"><Data ss:Type="String">剩余元宝汇总</Data></Cell>
	</Row>
  </Table>
  </Worksheet>
 </#if>

 <#list serversPayExpendList as serversPayExpend>
 <#if (serversPayExpend_index%50000==0)>
 <Worksheet ss:Name="${reportName!}${serversPayExpend_index/50000+1}">
  <Table>
      <Column ss:AutoFitWidth="0" ss:Width="100"/>
      <Column ss:AutoFitWidth="0" ss:Width="200"/>
      <Column ss:AutoFitWidth="0" ss:Width="200"/>
      <Column ss:AutoFitWidth="0" ss:Width="200"/>
      <Column ss:AutoFitWidth="0" ss:Width="200"/>
	<Row ss:AutoFitHeight="0">
		<Cell  ss:StyleID="header"><Data ss:Type="String">编号</Data></Cell>
    	<Cell  ss:StyleID="header"><Data ss:Type="String">服务器名</Data></Cell>
    	<Cell  ss:StyleID="header"><Data ss:Type="String">充值元宝汇总</Data></Cell>
    	<Cell  ss:StyleID="header"><Data ss:Type="String">消费元宝汇总</Data></Cell>
    	<Cell  ss:StyleID="header"><Data ss:Type="String">剩余元宝汇总</Data></Cell>
	</Row>
 </#if>
   <Row ss:AutoFitHeight="0">
    <Cell <#if (serversPayExpend_index%2==0)>ss:StyleID="content"</#if>><Data ss:Type="String">${serversPayExpend_index+1}</Data></Cell>
	<Cell <#if (serversPayExpend_index%2==0)>ss:StyleID="content"</#if>><Data ss:Type="String">${serversPayExpend.serverName!}</Data></Cell>
	<Cell <#if (serversPayExpend_index%2==0)>ss:StyleID="content"</#if>><Data ss:Type="String">${serversPayExpend.recharge!}</Data></Cell>
	<Cell <#if (serversPayExpend_index%2==0)>ss:StyleID="content"</#if>><Data ss:Type="String">${serversPayExpend.expend!}</Data></Cell>
	<Cell <#if (serversPayExpend_index%2==0)>ss:StyleID="content"</#if>><Data ss:Type="String">${serversPayExpend.remain!}</Data></Cell>
   </Row>
 <#if ((serversPayExpend_index+1)%50000==0)>
  </Table>
 </Worksheet>
 </#if>
 </#list>
 <#if (serversPayExpendList?size%50000!=0)>
  </Table>
 </Worksheet>
 </#if>
</Workbook>

具体如何通过java代码调用请参考人代码

时间: 2024-12-13 16:15:06

FreeMarker实例讲解的相关文章

Android 实例讲解HorizontalScrollView实现左右滑动

本博文主要讲解怎么使用HorizontalScrollView实现左右滑动的效果. HorizontalScrollView实际上是一个FrameLayout ,一般通过只放置一个LinearLayout子控件.如果要使其添加其他的控件,就使用LinearLayout子控件来添加其他的控件,最后达到丰富其内容的效果.其中,LinearLayout设置的orientation布局为Horizontal.HorizontalScrollView不可以和ListView同时用,因为ListView有自

多线程之间的通信实例讲解

                 多线程之间的通信实例讲解对于线程来说,说白了,就是一个函数,如果大家对于这章函数都有理解,那我对于操作系统,线程和进程间的通信会有一个新的认识!接下来我会对每一行代码进行注释,在此过程中,大家也可以对c语言有一个崭新的认识. 第一个函数,创建两个线程. #include <stdio.h>#include <pthread.h>    这个头函数要包含,因为我们后续用的函数都是系统调用,因此需要申请头函数   这样在编译的时候,就可以找到此函数的源

Java JUC之Atomic系列12大类实例讲解和原理分解

Java JUC之Atomic系列12大类实例讲解和原理分解 2013-02-21      0个评论       作者:xieyuooo 收藏    我要投稿 在java6以后我们不但接触到了Lock相关的锁,也接触到了很多更加乐观的原子修改操作,也就是在修改时我们只需要保证它的那个瞬间是安全的即可,经过相应的包装后可以再处理对象的并发修改,以及并发中的ABA问题,本文讲述Atomic系列的类的实现以及使用方法,其中包含: 基本类:AtomicInteger.AtomicLong.Atomic

Android 依赖注入: Dagger 2 实例讲解(一)

本文原创,转载请注明出处:http://blog.csdn.net/zjbpku 关于Dagger,在之前的博文(Android 依赖注入:Dagger 实例讲解(Demo下载))中已有介绍, 本文说的Dagger 2主要是由Google技术 人员参与开发的,当然包括Square的各位及其他一些Contributors在内的大牛也贡献了不少.该项目大概是从去年11月份开始启动的,到目前该项 目还在继续进行,Snapshot version也是刚刚发布不久,从Github提供的内容看,不久会是Pr

Oracle之索引(Index)实例讲解 - 基础

Oracle之索引(Index)实例讲解 - 基础 索引(Index)是关系数据库中用于存放表中每一条记录位置的一种对象,主要目的是加快数据的读取速度和数据的完整性检查.索引的建立是一项技术性要求非常高的工作. 一般在数据库设计阶段就要考虑到如何设计和创建索引. 1. 创建索引 创建索引的语法: CREATE [UNIQUE] INDEX [schema.] index ON [schema.] table (column [ASC | DESC], column [ASC | DESC]...

实例讲解Linux系统中硬链接与软链接的创建

导读 Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).默认情况下,ln命令产生硬链接.硬链接与软链接的区别从根本上要从Inode节点说起,下面就以实例讲解Linux系统中硬链接与软链接的创建,来实际看看Linux中两种链接方式的不同. 首先要弄清楚,在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号.文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存在,从而实现

触发器实例讲解

SQL触发器实例讲解(本文是来自百度文库) 备注:本人建了一个站特价汇,我想记录每个商品的点击量,然后按照点击量来牌名商品,想要提高效率,所以必须得用触发器,下面是本人在百度文库中的找到的学习资料,分享下给大家. 定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序.触发器是一个特殊的存储过程. 常见的触发器有三种:分别应用于Insert , Update , Delete 事件. 我为什么要使用触发器?比如,这么两个表: Create T

PHP中”单例模式“实例讲解【转】

转自::http://www.cnblogs.com/hongfei/archive/2012/07/07/2580994.html 假设我们需要写一个类用来操作数据库,并同时满足以下要求: ①SqlHelper类只能有一个实例(不能多)②SqlHelper类必须能够自行创建这个实例③必须自行向整个系统提供这个实例,换句话说:多个对象共享一块内存区域,比如,对象A设置了某些属性值,则对象B,C也可以访问这些属性值(结尾的例子很好的说明了这个问题) 1 <?php 2 class SqlHelpe

SQL触发器实例讲解

定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序.触发器是一个特殊的存储过程.       常见的触发器有三种:分别应用于Insert , Update , Delete 事件. 我为什么要使用触发器?比如,这么两个表: Create Table Student(              --学生表         StudentID int primary key,       --学号         ....        )