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

电脑做网站网站 手机 微信 app

电脑做网站,网站 手机 微信 app,wordpress怎么自定义音乐,做企业形象网站文章目录 前言依赖引入绘制 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.pierceye.com/news/580837/

相关文章:

  • 千万pv网站开发成本招聘网站数建设
  • 吐鲁番大型网站建设平台找客户去哪个平台
  • 权威网站有哪些给个网站可以在线
  • 优化网站专题北京海淀网站建设公司
  • 广州网站快速排名网站维护正常要多久
  • 建网站 选安全甘肃做网站价格
  • 微信公众管理平台有必要买优化大师会员吗
  • 家居网站建设素材腾讯adq广告平台
  • 响应式网站 图片居中门户网站样式
  • 潍坊网站排名推广北京建设高端网站的
  • 广东省住房和建设网站鹤壁市建设局网站
  • 北京网站建设报价明细手机网站网站开发流程
  • 三合一网站模板如何看网站是html几代做的
  • 如何设置自己的网站网站建设的常用词
  • 甘肃网站开发冷色调网站
  • 用cdr做网站设计尺寸要多少网站如何做实名验证码
  • 比较好的设计网站wordpress主题代码哪里
  • 专门学习网站建设读什么专业南山网站设计公司
  • 专业网站设计模板深圳最专业的高端网站建设
  • cc域名做网站怎么样无锡个人网站建设
  • 网站模板设计报价单小学网站建设设计方案
  • 二级域名网站怎么投广告wordpress自定义输入
  • su域名注册如何做360网站优化
  • 企业网站空间不足怎么办incapsula wordpress
  • 网站建设 镇江万达wordpress简
  • 做p2p理财网站开发公司销售人员竞聘演讲稿
  • 建设网站广州唯品会网站架构
  • 网站开发的国内外研究现状家庭装潢设计
  • 安卓从网站获取视频怎么做有没有做网站的公司
  • 网站设计计划书的内容如何做1个手机网站