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

图书网站建设方案广东微信网站开发哪家好

图书网站建设方案,广东微信网站开发哪家好,网站跟自媒体建设,品牌建设培训心得体会文章目录 前言依赖引入绘制 jxls 批注的 excel 模板测试类编写自定义命令关于自动换行 前言 之前的博客中都简单说了数据的渲染和导出excel文件。包括固定的 表头结构#xff0c;以及动态 表头和表数据等方式。 本篇博客主要说明自定义命令的方式#xff0c;控制输出excel文… 文章目录 前言依赖引入绘制 jxls 批注的 excel 模板测试类编写自定义命令关于自动换行 前言 之前的博客中都简单说了数据的渲染和导出excel文件。包括固定的 表头结构以及动态 表头和表数据等方式。 本篇博客主要说明自定义命令的方式控制输出excel文件每行记录的行高。 依赖引入 主要依赖以及版本如下所示 dependencygroupIdorg.jxls/groupIdartifactIdjxls/artifactIdversion2.4.5/version /dependency dependency!-- 可以使用poi的实现也可以用jexcelapi的 --groupIdorg.jxls/groupIdartifactIdjxls-poi/artifactIdversion1.0.15/version /dependency dependencygroupIdorg.jxls/groupIdartifactIdjxls-jexcel/artifactIdversion1.0.7/version /dependency dependencygroupIdnet.sf.jxls/groupIdartifactIdjxls-core/artifactIdversion1.0.6/version /dependency绘制 jxls 批注的 excel 模板 其中两个批注分别如下 整体数据范围 Administrator: jx:area(lastCell”H3”) 列表数据渲染范围 Administrator: jx:each(items“bDatas” var“vo” lastCell“H3” varIndex“ojbIndex” ) 测试类编写 编写一个简单的数据填充逻辑并生成对应的excel文件。代码如下所示 import cn.xj.test.UserPo; import com.google.common.collect.Lists; import org.jxls.builder.xls.XlsCommentAreaBuilder; import org.jxls.common.Context; import org.jxls.util.JxlsHelper; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource;import java.io.*; import java.util.*;public class Test1 {public static void main(String[] args) throws IOException {Context context new Context();// 数据集合ListUserPo dataList Lists.newArrayList();for (int i 0; i 10; i) {UserPo userPo new UserPo();userPo.setNum(1_i);userPo.setName(xj_i);userPo.setAge(i1);userPo.setMail(专注写bug测试中文11111);dataList.add(userPo);}// ${item.num}context.putVar(bDatas,dataList);// 模板文件再resources 目录下Resource resource new ClassPathResource(/report/test_user1.xlsx);InputStream is resource.getInputStream();String outFile System.getProperty(user.dir) File.separatorspringboot-poiFile.separatorpdfFile.separatorSystem.currentTimeMillis() .xlsx;OutputStream outputStream new FileOutputStream(outFile);JxlsHelper jxlsHelper JxlsHelper.getInstance();jxlsHelper.getAreaBuilder().getTransformer();jxlsHelper.processTemplate(is, outputStream, context);// JxlsHelper.getInstance().processTemplate(is, outputStream, context);} }执行后生成excel文件中内容的效果如下所示 每行的行高太大毕竟再模板中就是配置的这么大显得很散乱。此时则可以使用自定义命令的方式动态地修改行高。 自定义命令 jxls中自定义命令可以采取继承 AbstractCommand 类实现。自定义命令需要定义命令名称和命令逻辑。如下所示 import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.jxls.area.Area; import org.jxls.command.AbstractCommand; import org.jxls.common.CellRef; import org.jxls.common.Context; import org.jxls.common.Size; import org.jxls.transform.poi.PoiTransformer;/*** 自定义列高指令* 如* jx:autoRowHeight(lastCell C3)** 还需要在对应的主程序中调用*/ public class AutoRowHeightCommand extends AbstractCommand {/*** 批注中的自定义指令* return*/Overridepublic String getName() {return autoRowHeight;}/*** 列高逻辑* param cellRef* param context* return*/Overridepublic Size applyAt(CellRef cellRef, Context context) {Area areagetAreaList().get(0);Size size area.applyAt(cellRef, context);PoiTransformer transformer (PoiTransformer) area.getTransformer();Sheet sheet transformer.getWorkbook().getSheet(cellRef.getSheetName()); // List bDatas (List) context.getVar(bDatas); // int firstDefaultCol cellRef.getCol(); // 最开始的第一列 // if(!CollectionUtils.isEmpty(bDatas)){ // for (int i 0; i bDatas.size(); i) { // // 计算中文、字符的长度 设定列宽 // Object data bDatas.get(i); // if(!StringUtils.isEmpty(data) (data.getBytes().length4)sheet.getColumnWidth(i)){ // sheet.setColumnWidth(ifirstDefaultCol,data.getBytes().length4); // }else{ // sheet.setColumnWidth(ifirstDefaultCol,30); // 默认 // } // // } // }//sheet.setColumnWidth(cellRef.getCol(),50);Row row sheet.getRow(cellRef.getRow());row.setHeight((short) -1);return size;} }自定义命令后需要再模板中增加命令的标识否则不会生效。 jx:autoRowHeight(lastCell “H3”) 其次还需要再调用jxls做填充渲染之前补充命令和逻辑的调用。 import cn.xj.jxls.AutoRowHeightCommand; import cn.xj.test.UserPo; import com.google.common.collect.Lists; import org.jxls.builder.xls.XlsCommentAreaBuilder; import org.jxls.common.Context; import org.jxls.util.JxlsHelper; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource;import java.io.*; import java.util.*;public class Test1 {public static void main(String[] args) throws IOException {Context context new Context();// 数据集合ListUserPo dataList Lists.newArrayList();for (int i 0; i 10; i) {UserPo userPo new UserPo();userPo.setNum(1_i);userPo.setName(xj_i);userPo.setAge(i1);userPo.setMail(专注写bug测试中文11111);dataList.add(userPo);}// ${item.num}context.putVar(bDatas,dataList);// 模板文件再resources 目录下Resource resource new ClassPathResource(/report/test_user1.xlsx);InputStream is resource.getInputStream();String outFile System.getProperty(user.dir) File.separatorspringboot-poiFile.separatorpdfFile.separatorSystem.currentTimeMillis() .xlsx;OutputStream outputStream new FileOutputStream(outFile);JxlsHelper jxlsHelper JxlsHelper.getInstance();jxlsHelper.getAreaBuilder().getTransformer();// 渲染前 载入 自定义 命令XlsCommentAreaBuilder.addCommandMapping(autoRowHeight, AutoRowHeightCommand.class);jxlsHelper.processTemplate(is, outputStream, context);} }执行后的效果如下所示 关于自动换行 jxls没有对应的自动换行操作但是jxls可以在模板中定义对应的单元格样式。只需要在模板中对需要做自动换行的列增加如下配置。 再次执行上述的代码逻辑查看显示效果。
http://www.hkea.cn/news/14369997/

相关文章:

  • wordpress音乐网站网站后台内容管理系统
  • asp网站怎样做app微信卖水果链接网站怎么做
  • 网站300兆是多少网站建设公司织梦模板
  • 做网站如何获利企业营销系统和网站建设
  • 中国建设银行绑定网站四川网站建设scyiyou
  • WordPress网站封装app教程服务器类网站建设
  • 怎么用ps制作个人网站模板下载手机端网站设计尺寸
  • 天津专业网站建设公司俄罗斯局势最新消息
  • 公司的网站如何进行修改布局wordpress文章列表
  • 课程网站建设调研报告中国企业500强名单公布
  • 做网站一定要用服务器吗十大赚钱小程序
  • 全能网站建设郑州seo招聘
  • 用二级域名做网站做网站公司怎么找客户
  • 建网站的资料玩具购物网站模板
  • 电商网站建设与维护意味着什么企业宣传册模板下载
  • 辽宁省建设厅网站wordpress外网地址
  • 网站开发环境ide招聘平台
  • 企业网站可以备案几个代刷网站推广
  • 黄平网站建设做网站怎么导入源码
  • 手机网站代理免费ppt模板下载在哪里下载
  • Divi WordPress企业建站主题如何在阿里网站做外单
  • 网站建站销售怎么做有域名了网站怎么做
  • 苏州建网站必去苏州聚尚网络深圳网页设计招聘信息
  • 图书网站建设源码网站建设的客户
  • 长沙旅游景点大全排名新建网站怎么优化
  • 建设拍卖网站架设一个网站
  • 如何使用mysql数据库做网站北京东城区 网站建设
  • 自己怎么创网站成都网站建设思乐科技公司
  • 网站建设waoccwordpress 广告
  • ico网站建设宝安住房和建设局网站电话