技术标签: Java
需要将统计数据填充到指定的Excel模板中
public void writeExcelFile(LocalDate start, LocalDate end, String filename) {
File file = new File("files/report_Demo.xlsx");
XSSFWorkbook workbook = null;
try {
FileInputStream fileInputStream = new FileInputStream(file);
workbook = new XSSFWorkbook(fileInputStream);
} catch (Exception e) {
}
//查找到指定的sheet
XSSFSheet sheet = workbook.getSheet("抓取数据展示");
sheet.setForceFormulaRecalculation(true);
Map<String, List<StatInfo>> sourceCompares = getCompare(start, end);
Map<String, String> catchMap = new HashMap<>();
for (Map.Entry<String, List<StatInfo>> entry : sourceCompares.entrySet()) {
String site = entry.getKey();
int rowNum = 0;
//判断指定数据存放到指定的行数
switch (site) {
case "weixin":
rowNum = 23;
break;
case "article":
rowNum = 32;
break;
case "rss":
rowNum = 43;
break;
case "yidian":
rowNum = 54;
break;
case "weiboarticle":
rowNum = 64;
break;
case "toutiao":
rowNum = 75;
break;
}
XSSFRow row = sheet.getRow(rowNum);
List<StatInfo> statInfos = entry.getValue();
//按照相同的site的时间相同属性去重
for (int i = 0; i < statInfos.size(); i++) {
if (catchMap.containsKey(statInfos.get(i).getSite())
&& catchMap.get(statInfos.get(i).getSite()).equals(statInfos.get(i).getTime())) {
statInfos.remove(i);
} else {
catchMap.put(statInfos.get(i).getSite(), statInfos.get(i).getTime());
}
}
for (int i = 0; i < statInfos.size(); i++) {
//当上一周的数据填充完成了就填充本周7天数据,行数+1换到本周
if (i == 7) {
row = sheet.getRow(rowNum + 1);
}
//从第三列开始进行,并以7天为一个周期循环找列数
XSSFCell cell = row.getCell(3 + i % 7);
cell.setCellType(XSSFCell.CELL_TYPE_NUMERIC);
cell.setCellValue(statInfos.get(i).getCatchCount());
}
}
ByteArrayOutputStream bos = new ByteArrayOutputStream();
try {
workbook.write(bos);
File outfile = new File(filename);
FileOutputStream fileOutputStream = new FileOutputStream(outfile);
fileOutputStream.write(bos.toByteArray());
fileOutputStream.flush();
fileOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (bos != null) {
bos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
System.out.println("周报数据已经完成,请检查");
}
最终的Excel表格效果:
qt右键菜单增加翻译内容
如今,越来越多的企业开始利用数据中心虚拟化来降低成本和简化数据流,而为了确保数据可以在数据中心和业务位置之间实现无缝传输,网络容量需求将会大大增加。为了适应这种趋势发展,业界正在寻找通过连接尽可能多的网络设备来增强网络容量的方法,例如,MLAG和vPC,这两种链路聚合技术可连接多台以太网交换机,增加网络容量。那么您了解它们吗?两者之间有何不同?本文将对此展开全面的介绍。MLAG是什么?MLAG(多机箱链路聚合)是一种启用来自主机的二层多路径以获得额外的带宽或链路弹性的非标准协议,由于该协议是一种公共
最近在研究数据中心功能时发现CISCO有一个虚拟化技术叫vPC的技术,今天就把我研究的成果分享出来。什么是vPC(virtual port channel)?研究了大半天,其实它就是一个可以跨不同设备的port-channel技术。它的作用:可以实现网络冗余,可以跨设备进行端口聚合,增加链路带宽,当链路故障时比生成树协议收敛时间还快。下面我们就说说为什么会出现vPC技术。如上图所示
直到看到了一个好友分享到外卖 CPS,觉得这是一个机会,不仅任何地方都可以做,而且门槛相对较低。所以我最近分析了将近 30 个外卖大号,分析了他们的引流流程,总结一下他们有哪些可以值得我们借鉴的地方。希望对大家有所启发。当然最主要的还是着手去做。外卖cps带分销返利源码源代码地址http://www.mybei.cn搭建步骤下载以上源代码到本地http://www.mybei.cn成品展示截图步骤下载以上源代码到本地http://www.mybei.cn修改为你自己的微信
[[email protected] containers]# pwd/etc/containers[[email protected] containers]# vim registries.conf......unqualified-search-registries = ["docker.io"][[registry]]prefix = "docker.io"location = "j7nfsalu.mirror.aliyuncs.com"......[[email protected] ~]# c
1. 题目题目:求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如 2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。2. 分析程序分析:关键是计算出每一项的值。3. 代码示例 main() { int a,n,count=1; long int sn=0,tn=0; pr...
1 接电话的场合& おはようございます、○○会社です。& はい、○○会社でございます。& はい、○○会社、田中がうけたまわっております。& おはようございます、○○会社、××部でございます。 2 打电话的场合& おはようございます、いつもお世话になります、○○社の铃木と申しますが。 & いつもお世话になっております、私○○社の铃木と申しますが。顾客に対して电话応
PS188——谱瑞(Parade)推动的 Type-C扩展坞红海战略两年前谱瑞(Parade)收购睿思科技(Fresco Logic)的时候,没有人会想到,扩展坞行业老大已经准备好主动发起价格战了。
计算机I/OI/O在计算机中指Input/Output,Linux服务器 I/O 原理和流程内核空间和用户空间数据交换具体参见:https://blog.csdn.net/timonium/article/details/117775331Linux系统I/O模型和网络I/O模型基于Linux服务器I/O原理提出的数据交换模式架构说人话:IO模型就是一种数据传递的设计方案太长不看版本同步和异步同步:使用天然气老水壶烧水,得盯着异步:使用物联网电水壶烧水,水烧开了自动停了还
概述官方文档Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LR
一、 环信的概念: 二、 环信的官网:http://www.easemob.com/三、 集成环信到APP只是修改背景和图标需要一两天时间,如果更复杂修改估计需要5—7天时间。四、 集成需要的步骤: 五、 环信我的开发账号:账号:[email protected];密码:wade123456.注册的步骤:1.在首页点击注册,到如下图: 信息填写完之后,在邮箱激活。再登录。登陆完界面如下: 2.创建...