当前位置: 首页 > news >正文

网站开发的基本原则南昌seo招聘信息

网站开发的基本原则,南昌seo招聘信息,网站建设 讲话,品牌网站建设报价好久木有更新啦 抓住2023的小尾巴 浅浅更新一下吧~ 最近做了一个动态生成excel的功能#xff0c;这里记录下部分功能#xff0c;主要用到的是freemarker框架#xff0c;spring就有带#xff0c;我起的demo载入了一下freemarker的jar包 一、创建模板 首先可以创建一个e…好久木有更新啦 抓住2023的小尾巴 浅浅更新一下吧~ 最近做了一个动态生成excel的功能这里记录下部分功能主要用到的是freemarker框架spring就有带我起的demo载入了一下freemarker的jar包 一、创建模板 首先可以创建一个excel编辑自己想要的模板这里举个简单的例子 编写好后可以保存一下然后再保存为.xml格式的文件就能得到模板雏形 大概是长这样 然后根据ftl文件的语法我们可以对模板进行改造加入自己需要的字段 这里列举一些常见的方式 1、普通字段填充 Cell ss:StyleIDs17Data ss:TypeString姓名/Data/Cell Cell ss:StyleIDs17Data ss:TypeString${(name)!}/Data/Cell 2、日期填充java传入的参数类型为Date Cell ss:Index2 ss:StyleIDs17Data ss:TypeString出生年月/Data/CellCell ss:StyleIDs17#if birth??Data ss:TypeString${birth?string(yyyy-MM-dd)}/Data/#if/Cell 3、switch case选择用法 Cell ss:StyleIDs17Data ss:TypeString国籍/Data/CellCell ss:StyleIDs17#if certType??#switch certType #case A Data ss:TypeString■身份证 □外籍护照 □港澳居民来往内地通行证/Data#break #case B Data ss:TypeString□身份证 ■外籍护照 □港澳居民来往内地通行证/Data#break #case C Data ss:TypeString□身份证 □外籍护照 ■港澳居民来往内地通行证/Data#break #default /#switch#elseData ss:TypeString□身份证 □外籍护照 □港澳居民来往内地通行证/Data/#if/Cell 4、数组对象展示 (这边我做的这个主要是因为有动态展示的需求如果没有家属信息就不展示家属单元格) #list spouseInfos as rowRow ss:AutoFitHeight0Cell ss:MergeDown2 ss:StyleIDs18Data ss:TypeString家属信息/Data/CellCell ss:StyleIDs17Data ss:TypeString姓名/Data/CellCell ss:StyleIDs17Data ss:TypeString${(row.name)!}/Data/Cell/RowRowCell ss:Index2 ss:StyleIDs17Data ss:TypeString关系/Data/CellCell ss:StyleIDs17Data ss:TypeString${(row.relation)!}/Data/Cell/RowRowCell ss:Index2 ss:StyleIDs17Data ss:TypeString联系电话/Data/CellCell ss:StyleIDs17Data ss:TypeString${(row.tel)!}/Data/Cell/Row/#list 这里需要注意如果使用了数组动态展示需要计算行数 可以把xml文件里的ExpandedRowCount参数进行修改加入totalRowCount参数标记行数 在java程序中需要动态计算这个行数 Table ss:ExpandedColumnCount3 ss:ExpandedRowCount${(totalRowCount)!} x:FullColumns1x:FullRows1 ss:DefaultColumnWidth54 ss:DefaultRowHeight13.5 模板制作好以后保存再修改文件格式名称为.ftl即可 主体部分为 Table ss:ExpandedColumnCount3 ss:ExpandedRowCount${(totalRowCount)!} x:FullColumns1x:FullRows1 ss:DefaultColumnWidth54 ss:DefaultRowHeight13.5Column ss:Index3 ss:AutoFitWidth0 ss:Width310.5/RowCell ss:MergeDown2 ss:StyleIDs18Data ss:TypeString基本信息/Data/CellCell ss:StyleIDs17Data ss:TypeString姓名/Data/CellCell ss:StyleIDs17Data ss:TypeString${(name)!}/Data/Cell/RowRowCell ss:Index2 ss:StyleIDs17Data ss:TypeString性别/Data/CellCell ss:StyleIDs17Data ss:TypeString${(sex)!}/Data/Cell/RowRowCell ss:Index2 ss:StyleIDs17Data ss:TypeString出生年月/Data/CellCell ss:StyleIDs17#if birth??Data ss:TypeString${birth?string(yyyy-MM-dd)}/Data/#if/Cell/RowRowCell ss:MergeDown2 ss:StyleIDs18Data ss:TypeString其他信息/Data/CellCell ss:StyleIDs17Data ss:TypeString国籍/Data/CellCell ss:StyleIDs17#if certType??#switch certType #case A Data ss:TypeString■身份证 □外籍护照 □港澳居民来往内地通行证/Data#break #case B Data ss:TypeString□身份证 ■外籍护照 □港澳居民来往内地通行证/Data#break #case C Data ss:TypeString□身份证 □外籍护照 ■港澳居民来往内地通行证/Data#break #default /#switch#elseData ss:TypeString□身份证 □外籍护照 □港澳居民来往内地通行证/Data/#if/Cell/RowRowCell ss:Index2 ss:StyleIDs17Data ss:TypeString居住地址/Data/CellCell ss:StyleIDs17Data ss:TypeString${(address)!}/Data/Cell/RowRowCell ss:Index2 ss:StyleIDs17Data ss:TypeString联系电话/Data/CellCell ss:StyleIDs17Data ss:TypeString${(tel)!}/Data/Cell/Row#list spouseInfos as rowRow ss:AutoFitHeight0Cell ss:MergeDown2 ss:StyleIDs18Data ss:TypeString家属信息/Data/CellCell ss:StyleIDs17Data ss:TypeString姓名/Data/CellCell ss:StyleIDs17Data ss:TypeString${(row.name)!}/Data/Cell/RowRowCell ss:Index2 ss:StyleIDs17Data ss:TypeString关系/Data/CellCell ss:StyleIDs17Data ss:TypeString${(row.relation)!}/Data/Cell/RowRowCell ss:Index2 ss:StyleIDs17Data ss:TypeString联系电话/Data/CellCell ss:StyleIDs17Data ss:TypeString${(row.tel)!}/Data/Cell/Row/#list/Table 二、生成文件 生成文件的主要java代码如下 import freemarker.template.Configuration; import freemarker.template.Template;import java.io.*; import java.nio.charset.StandardCharsets; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Map;public class ExcelUtil {/*** 根据模板生成文件* param dataMap 写入数据* param templateFilePath 模板文件路径* param outFileName 输出文件路径*/public static void doGenerateFile(MapString, Object dataMap, String templateFilePath, String outFileName) {Writer out null;FileOutputStream fileStream null;//需要压缩的文件大于1个才会压缩try {//生成合同文件Configuration configuration new Configuration();configuration.setDefaultEncoding(UTF-8);Template t configuration.getTemplate(templateFilePath); // 获取模板文件// 导出文件File outFile new File(outFileName);//获取父目录File fileParent outFile.getParentFile();//判断是否存在if (!fileParent.exists()) {//创建父目录文件fileParent.mkdirs();}OutputStreamWriter oWriter null;fileStream new FileOutputStream(outFile);oWriter new OutputStreamWriter(fileStream, StandardCharsets.UTF_8);out new BufferedWriter(oWriter);// 将填充数据填入模板文件并输出到目标文件t.process(dataMap, out);} catch (Exception e1) {if (fileStream ! null out ! null) {close(fileStream, out);}System.out.println(生成文件出错 e1.getMessage());} finally {if (fileStream ! null out ! null) {close(fileStream, out);}}}private static void close(FileOutputStream fileStream, Writer out) {try {fileStream.flush();fileStream.close();out.flush();out.close();} catch (Exception e) {System.out.println(关闭流异常, e.getMessage());}}public static Date str2Date(String dateString) {try {SimpleDateFormat sdf new SimpleDateFormat(yyyy-MM-dd);Date date sdf.parse(dateString);return date;} catch (Exception e) {e.printStackTrace();}return null;} } 写个简单的类测试一下 1、如果不需要展示List对象的数据可以存一个空数组到Map本文为例家属信息为列表对象 import java.math.BigDecimal; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;public class TestMain {public static void main(String[] args) {//相对路径 模板文件、输出文件String templateFile file/temp.ftl;String outFileName file/test.xls;MapString, Object dataMap test01(); // MapString, Object dataMap test02();try {ExcelUtil.doGenerateFile(dataMap, templateFile, outFileName);} catch (Exception e) {System.out.println(处理异常, e.getMessage());}}private static MapString, Object test01() {MapString, Object dataMap new HashMap();BigDecimal baseRow new BigDecimal(6);dataMap.put(name, 张三);dataMap.put(sex, 男);dataMap.put(birth, ExcelUtil.str2Date(1990-01-10));dataMap.put(certType, A);dataMap.put(address, 地址详情);dataMap.put(tel, 110110); //放入一个空数组的参数避免合成的时候报错ListMapString, Object list new ArrayList();dataMap.put(spouseInfos, list);dataMap.put(totalRowCount, baseRow);return dataMap;}private static MapString, Object test02() {MapString, Object dataMap new HashMap();BigDecimal baseRow new BigDecimal(6);dataMap.put(name, 张三);dataMap.put(sex, 男);dataMap.put(birth, ExcelUtil.str2Date(1990-01-10));dataMap.put(certType, A);dataMap.put(address, 地址详情);dataMap.put(tel, 110110);ListMapString, Object list new ArrayList();MapString, Object s1 new HashMap();s1.put(name, 李四);s1.put(relation, 夫妻);s1.put(tel, 112112);list.add(s1);dataMap.put(spouseInfos, list);//计算展示行数BigDecimal subtract baseRow.add(new BigDecimal(3));dataMap.put(totalRowCount, subtract);return dataMap;} }使用test01数据效果如图 使用test02数据效果如图
http://www.zqtcl.cn/news/695784/

相关文章:

  • 网站后台被百度蜘蛛抓取哪个做网站比较好
  • 企业建设网站的需求分析百度免费发布信息平台
  • 网站建设交易中心上海装修公司排行榜
  • 桂林论坛网站有哪些在线设计平台用户分析
  • wap网站的开发去加网 wordpress
  • 博客网站建设设计论文总结php mysql做网站登录
  • 海南智能网站建设公司wordpress 如何使用php版本号
  • 河南网站开发培训app 软件开发
  • 购物网站功能介绍一流的高密网站建设
  • 电影网站怎么做优化wordpress 去掉w
  • 永久网站空间标书制作员工资很低吗
  • 做网站用到ps么淘宝优惠网站怎么做
  • jsp 淘宝网站验证码 设计搜索引擎排名
  • pdf怎么做电子书下载网站北京成立公司
  • 网站后台附件无法上传阿克苏建设网站
  • 网站和网址有什么不同佛山狮山网站建设
  • 有免费的微网站是什么可以做长图的网站
  • 南昌手机建站模板18种禁用软件黄app
  • 备案的域名做电影网站wordpress伪静态cdn配置
  • 国家城乡住房建设部网站百度关键词首页排名
  • 安卓软件开发需要学什么软件北京百度推广优化公司
  • 用asp.net 做网站wordpress网址缩短
  • 中国工程建设交易信息网站仿蘑菇街wordpress主题
  • 网站需要怎么做做普通网站公司吗
  • 网站收录平台方法网站建设是不是都需要交费
  • 上海 政务网站建设情况营销模式有哪些 新型
  • 国内做免费视频网站有哪些苏州娱乐场所最新消息
  • 福田建设网站宿迁网站建设案例
  • 建立企业网站的目的和意义人力资源外包收费标准
  • 网站开发前后端分离湘潭seo磐石网络