freemarker数字格式化可以在两个地方设置,一个是全局的,即在freemarker.properties文件中设置number_format,还有一个是使用string指令来控制数据的输出格式。例如:
(以下均是在模板文件中修改)
${num?string('0.00')}
如果小数点后不足两位,用 0 代替
${num?string('#.##')}
如果小数点后多余两位,就只保留两位,否则输出实际值
输出为:1239765.46
${num?string(',###.00')}
输出为:1,239,765.46
整数部分每三位用 , 分割,并且保证小数点后保留两位,不足用 0 代替
${num?string(',###.##')}
输出为:1,239,765.46
整数部分每三位用 , 分割,并且小数点后多余两位就只保留两位,不足两位就取实际位数,可以不不包含小数点
${num?string('000.00')}
输出为:012.70
整数部分如果不足三位(000),前面用0补齐,否则取实际的整数位
${num?string('###.00')}
等价于
${num?string('#.00')}
输出为:12.70
整数取实际的位数
--------------------------------------------------------------------------------------------------------------
判断null值
<#
if
target??>
xxxx
</#
if
>
上面这段代码判断target??是否为null,如果不为null时才可以执行if里面的内容,为null时则不进到
if里面
忽略null值
假设前提:user.name为null
${user.name},异常
${user.name!},显示空白
${user.name!'vakin'},若user.name不为空则显示本身的值,否则显示vakin
${user.name?default('vakin')},同上
${user.name???string(user.name,'vakin')},同上
---------------------------------------------------------------------------------------------------------------
data转换为string
${parameters.fieldDate?date} //标准日期转日期字符串
${parameters.fieldDate?datetime} //标准日期转日期+时间 字符串
${parameters.fieldDate?string("yyyy-MM-dd HH:mm:ss")} //标准日期转自定格式 字符串
日期转换时,如果date为null则会报错,所以一般与if判断null一起使用------------------------------------------------------------------------------------------------------
freemaker中使用三目运算转义
例如:${(ResOpmnDto.hasdlprsc==-1)?string('否','是')?html}
------------------------------------------------------------------------------------------------------------
语法:${对象_index} 为索引,从0开始,每遍历一个对象会自动+1
--------------------------------------------------------------------------------------
用json格式保存的数据如何填入excel模板中
//处理json填充到excel中
JSONObject homeJson = JSONObject.parseObject(baseInfor.getHome());// 投资计划
JSONObject pjbJson = JSONObject.parseObject(baseInfor.getProjectbidding());
JSONObject designJson = JSONObject.parseObject(baseInfor.getDesign());// 初步设计
JSONObject drawdesignJson = JSONObject.parseObject(baseInfor.getDrawdesign());// 施工图设计
JSONObject prjacceptJson = JSONObject.parseObject(baseInfor.getProjectaccept());// 工程验收
JSONArray hometable = JSONArray.parseArray(homeJson.getString("table"));// 投资计划-表格
JSONArray pjbtable = JSONArray.parseArray(pjbJson.getString("table"));// 工程招投标
JSONArray drdstable = JSONArray.parseArray(drawdesignJson.getString("table"));// 施工图设计-表格
data.put("drdstable", drdstable);
data.put("pjbtable", pjbtable);
data.put("hometable", hometable);
data.put("homeJson", homeJson);
data.put("designJson", designJson);
data.put("drawdesignJson", drawdesignJson);
data.put("prjacceptJson", prjacceptJson);
data.put("id", id);
data.put("city", city);
data.put("rsnm", bsin.getRsnm());
data.put("baseInforList", baseInforList);
data.put("baseInfo", baseInfor);
data.put("rsincd", rsincd);