首页 文章 精选 留言 我的

精选列表

搜索[定位功能],共10000篇文章
优秀的个人博客,低调大师

ExcelUtil 3.1.2 发布,新增水印导出功能

你还在写大量的Excel导入导出代码? ExcelUtil一行代码搞定导入导出哦! 更多示例见官网哦,2.x不建议观看,直接看3.x版本哦 【官网文档】http://www.likaixuan.top/excelUtil/doc/v3 【本次更新内容如下】 1.新增水印。 话不多说,先看效果图, 对于大多数程序员来说,吭哧百度白天,水印倒是添加上去了,居然是假水印,[偷笑],所谓加水印就是生成图片贴在Exel上,这种水印实在不敢恭维 有区别于市面上好多贴图在Excel上面的假水印,我们可是真水印 哦! 【温馨提示:用ExcelUtil工具只需要一行代码,不仅能导出Excel,还能添加水印哦】 【说明】现在很多工具类,为了设计为工具,其本身有学习成本在里面,ExcelUtil作为一个工具类,其一开始就为了开发者能够迅速上手 ,所以我们的一贯宗旨就是极简的代码上手,对入门者来说十分简单就能使用。 更多用法请参见官网:http://www.likaixuan.top/excelUtil/doc/v3 以下用例都是3.x用法: 一行代码搞定Excel导出且有水印!!! 就是这么简单!!! /** * * 参数说明:1.response 没什么好说的 2.list 数据集 3.导出excel的名称 4.自定义水印文字 */ @GetMapping(value = "/export") public void testExport(HttpServletResponse response) throws Exception{ List<PhoneModel> list = new ArrayList<>(); for(int i=0;i<10;i++){ PhoneModel model = new PhoneModel(); model.setNum((i+1)); model.setColor("金色"+i); model.setPhoneName("苹果"+i+"S"); model.setPrice(i); model.setSj(new Date()); list.add(model); } ExcelUtil.exportExcelOutputStream(response,list,PhoneModel.class,"测试Excel导出","素剑步青尘"); } 引入pom <!--https://mvnrepository.com/artifact/net.oschina.likaixuan/excelutil--> <dependency> <groupId>net.oschina.likaixuan</groupId> <artifactId>excelutil</artifactId> <version>3.1.2</version> </dependency>

优秀的个人博客,低调大师

ExcelUtil 3.1.0 发布,新增模板导出功能

更新内容如下: 1.新增模板导出。 【说明】现在很多工具类,为了设计为工具,其本身有学习成本在里面,ExcelUtil作为一个工具类,其一开始就为了开发者能够迅速上手 ,所以我们的一贯宗旨就是极简的代码上手,对入门者来说十分简单就能使用。 更多用法请参见官网: http://www.likaixuan.top/excelUtil/doc/v3 以下用例都是3.x用法: //浏览器中直接下载 /** * * 参数说明:1.response 没什么好说的 2.模板地址 3.类对象 4.文件导出名称 */ @GetMapping(value = "/exportTemplate") public void exportTemplate(HttpServletResponse response) throws Exception{ PhoneModel model = new PhoneModel(); model.setColor("金色"); model.setPhoneName("苹果12 S"); model.setPrice(9999); model.setSj(new Date()); ExcelUtil.templateWrite(response,"E:\\新建XLSX 工作表.xlsx",model,"ce测试时"); } //导出带文件名称但不带表头,文件名称用当前时间,年月日时分秒命名 @GetMapping(value = "/export") public void testExport(HttpServletResponse response) throws Exception{ List<PhoneModel> list = new ArrayList<>(); PhoneModel model = null; for(int i=0;i<10;i++){ model = new PhoneModel(); model.setNum((i+1)); model.setColor("金色"+i); model.setPhoneName("苹果"+i+"S"); model.setPrice(i); model.setSj(new Date()); list.add(model); } ExcelUtil.exportExcelOutputStream(response,list,PhoneModel.class); } //导出带文件名和表头,文件名称和表头保持一致 @GetMapping(value = "/exportHeader") public void testExportHeader(HttpServletResponse response) throws Exception{ List<PhoneModel> list = new ArrayList<>(); PhoneModel model = null; for(int i=0;i<10;i++){ model = new PhoneModel(); model.setNum((i+1)); model.setColor("金色"+i); model.setPhoneName("苹果"+i+"S"); model.setPrice(i); model.setSj(new Date()); list.add(model); } ExcelUtil.exportExcelOutputStream(response,list,PhoneModel.class,"文件名后面参数true标识表头也是同样名称",true); } 引入pom <!--https://mvnrepository.com/artifact/net.oschina.likaixuan/excelutil--> <dependency> <groupId>net.oschina.likaixuan</groupId> <artifactId>excelutil</artifactId> <version>3.1.0</version> </dependency>

优秀的个人博客,低调大师

maxCompute的UDAF demo,实现累加功能

需求:将表中数据按照name聚合,并且count进行累加 name count Jan 1 Jan 2 Feb 3 Feb 1 Mar 1 Mar 5 预期结果: name count Jan 3 Feb 7 Mar 13 使用idea的maxCompute studio新增UDAF 然后自动生成未实现的方法,我的字段name是string,count是bigint所以@Resolve("string,bigint->bigint") 新增一个class用来存储字段 private String name; private Long count; @Override public void write(DataOutput out) throws IOException { out.writeUTF(name); out.writeLong(count); } @Override public void readFields(DataInput in) throws IOException { name = in.readUTF(); count = in.readLong(); } } 这样newBuffer就可以这样写了 public Writable newBuffer() { return new MyBuffer(); } 还需要一个Map来存储key(name)和value(count),一个long类型的参数存储累加的值 Long old_count = 0L;//存储累加值 private LongWritable ret = new LongWritable();//存储输出值 完整代码参考: public class UDAFTest extends Aggregator { private static class MyBuffer implements Writable { private String name; private Long count; @Override public void write(DataOutput out) throws IOException { out.writeUTF(name); out.writeLong(count); } @Override public void readFields(DataInput in) throws IOException { name = in.readUTF(); count = in.readLong(); } } @Override public Writable newBuffer() { return new MyBuffer(); } Map<String,Long> map = new LinkedHashMap<>(); Long old_count = 0L; @Override public void iterate(Writable buffer, Writable[] args) throws UDFException { String arg = String.valueOf(args[0]); Long cnt = Long.parseLong(String.valueOf(args[1])); MyBuffer buf = (MyBuffer) buffer; if (arg != null) { if(map.containsKey(arg)){ Long newcnt = map.get(arg); old_count = cnt+newcnt; map.put(arg,old_count); }else { map.put(arg,old_count+cnt); } } buf.name = arg; buf.count = map.get(arg); } private LongWritable ret = new LongWritable(); @Override public Writable terminate(Writable arg0) throws UDFException { MyBuffer buffer = (MyBuffer) arg0; ret.set(buffer.count); return ret; } @Override public void merge(Writable buffer, Writable partial) throws UDFException { MyBuffer buf = (MyBuffer) buffer; MyBuffer p = (MyBuffer) partial; buf.name = p.name; buf.count = p.count; } } 然后通过maxCompute studio发布下 发布名为test20191119,这样就可以在Dataworks中调用了。 其中原表数据:

优秀的个人博客,低调大师

javascript原生代码实现页面查找功能

由于是需在多框架页面中进行搜索,所以先从搜索顺序从左—右。 <input type="button" value="搜 索" onclick="findText(txtFind.value)" style="width:70px;height:28px;font-weight: bold;"> <script language="javascript"> var rng=""; var iframe_next=""; var frame_target=window.parent.document.frames.left_iframe; //默认先搜索左框架 function findText(str){ try{ if(str==""){ alert("请输入搜索的关键字"); return; } if(rng.findText(str)){ //若找到,则反白关键字 rng.select(); rng.collapse(false); //迫使开始点移动第一个匹配的范围的结束点 }else{ //否则判断左右框架搜索跳转 if (iframe_next=="right"){ //若当前为右框架,则弹出完成对话框并准备下一步搜索左框架 alert("搜索完毕"); iframe_next="left"; frame_target=window.parent.document.frames.left_iframe; rng = frame_target.document.body.createTextRange(); }else{ //若当前为左框架,则下一步搜索右框架 iframe_next="right" frame_target=window.parent.document.frames.right_iframe; rng = frame_target.document.body.createTextRange(); findText(str); } } } catch(err){ //由于搜索框放在页面顶部,所以第一次createTextRange会出错,catch里赋值即可。 rng=window.parent.document.frames.left_iframe.document.body.createTextRange(); findText(str); } } </script> 参考资源: javascript moveStart和moveEnd方法(TextRange对象--查找与选择)http://hi.baidu.com/mascotdai/blog/item/2538030e979e56c27bcbe1f5.html 用javascript获得参数/编辑SELECT/设置光标位置/页内查找http://hi.baidu.com/jhfcjl/blog/item/4ceaafec7cadcf4878f05587.html

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册