freemaker生成Excel表格输出时,数字格式,日期转换,判断null,三目运算,索引问题,用json保存的数据填入excel中

版权声明:转载说明出处,谢谢。 https://blog.csdn.net/Black_PL/article/details/80394487


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);

猜你喜欢

转载自blog.csdn.net/Black_PL/article/details/80394487