poi

Android EXCEL 解析 xls 和 xlsx,方法其实很简单

此生再无相见时 提交于 2020-05-06 16:59:48
前言 Excel 解析,一般来说是在服务端进行的,但是如果移动端要实现解析Excel的功能,那也是有实现的方法的。 不过由于Android 原生用Java/Kotlin实现,所以也可以参考服务端解析Excel的方法。 首先说, jxl ,过去比较流行的解析office文档的框架,但目前官方的版本,在移动端上是不能解析xlsx。 然后是 POI ,是如今比较主流的处理office文档的框架,可以导入也可以生成,缺点是:官方的依赖包的体积较大,官方最新版本在android项目所需sdk需要minSDK 24及以上。 最后找到的一个比较轻便简单的方案是,通过一个国外的开发者对 POI 包进行简化后的库 android5xlsx ,保留了在Android5以上解析xls和xlsx的功能(开发者本人吐槽在android5以下解析Excel真有点绕) android5xlsx 的github地址 下面是我的项目中简单使用这个库的一些步骤( 非源码分析讲解,请谅解 ):(Android 10 环境实测有效) 使用步骤 一、解除 65 K 方法的限制 : android { compileSdkVersion 29 buildToolsVersion "29.0.2" defaultConfig { ..... versionName "1.0" multiDexEnabled true /

原创 记录一次线上Mysql慢查询问题排查过程

空扰寡人 提交于 2020-05-06 09:51:37
背景 前段时间收到运维反馈,线上Mysql数据库凌晨时候出现慢查询的报警,并把原始sql发了过来: --去除了业务含义的sql update test_user set a=1 where id=1; 表数据量200W左右,不是很大,而且是根据主键更新。 问题排查 排查Mysql数据库 我看到sql后第一反应就是是不是数据库出问题了,每个小时都有业务,偏偏白天业务高峰时间段正常,凌晨业务量很少时候出问题,让运维先检查了数据库的状态,反馈是数据库正常。 排查业务代码(第一次) 这块业务代码比较复杂,而且是别人写的,第一次看都没看完,直接在代码里打印了各个模块执行的时间,然后上线。 排查业务代码(第二次) 第二天又出现慢查询了,我赶紧下载了线上日志,发现整个方法执行时间很长,然后发现执行时间长的代码有几行调用其他服务的代码,使用的是HttpClient,猜到了原因,应该是调用其他超时导致的。 说下系统整体流程,微信(A)回调我们的收银台服务(B),收银台更新订单信息并调用业务服务(C)。 出问题原因是: 第一次A调用B,B锁住记录行并调用C,这个时候C没有响应,导致A又发送了第二次请求。 第二次A调用B,B更新记录时候发生死锁,出现慢查询。 解决方案 收银台系统B接收回调的方法添加分布式锁,保证同一时刻同一订单只能更新一次。 收银台调用业务服务使用的是HttpClient4.4

Java构建工具Maven与Gradle

给你一囗甜甜゛ 提交于 2020-05-05 20:40:48
什么是构建工具? 构建工具是一个 把源码生成可执行应用程序的过程自动的化的一个程序 ,构建包括编译,连接跟把代码打包成可用的或可行的形式。 时下热门的两大构建工具 Maven: a.拥有约定你知道代码放在那里,放到哪里去 b.拥有生命周期 :可以自动执行编译,测试,打包等构建过程 c.拥有依赖管理,仓库管理 d.使用pom.xml进行管理 Maven的配置文件是.pom文件。POM是项目对象模型(Project Object Model)的简称,它是Maven项目中的文件,使用XML表示。其中包含项目的基本信息,构建过程,环境信息,依赖信息等。我们可以看下面这个简单的例子: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <artifactId>iBase4J-SYS-Web<

Spring从入门到入土——概述以及IOC理论推导

会有一股神秘感。 提交于 2020-05-05 19:51:44
Spring 概述以及IOC理论推导 Spring 概述 优点 组成 IoC基础 IoC本质 相关文章: 跟着官网学spring—快速入门指南 跟着官网学Spring—构建RESTful Web服务 Spring 概述 优点 Spring是一个开源免费的框架、容器 Spring是一个轻量级的框架、非侵入式的 控制反转Ioc、面向切面Aop 对事务的支持以及对框架的支持 总之: spring是一个轻量级的控制反转(Ioc)和面向切面(AOP)的容器(框架)。 组成 组成Spring框架的每个模块都可以单独存在,或者与其他一个或多个模块联合实现: 核心容器:核心容器提供Spring框架的基本功能,主要组件是BeanFactory,是工厂模式的实现。其BeanFactory使用控制反转(IOC)模式将应用程度的配置和依赖性规范与实际的应用程序代码分开 Spring上下文:是一个配置文件,向Spring框架提供上下文信息。主要包括:企业服务,例如JNDI、EJB、电子邮件、国际化、校验和调度功能 Spring AOP:通过配置管理特性,将面向切面的编程功能,集成到了Spring框架中,所以可以很方面的使Spring框架管理任何支持AOP的对象。也为基于Spring的应用程序中的对象提供了事务管理服务。使用SpringAOP可以不依赖组件,就可以将声明性事务管理集成到应用程序中。

UVA 1601 The Morning after Halloween

别来无恙 提交于 2020-05-05 19:06:29
https://vjudge.net/problem/UVA-1601 题目 你在游乐场的鬼屋里当操作员,专门控制鬼屋里的机器人……某日没事干的出题人把这些机器人搬到了其他地方,你需要在最短的时间内遥控机器人让他们回到原位。所有机器人都可以同时在1秒内朝四个方向(上下左右)移动1格,但是每次移动都必须符合以下条件 每个格子只能有一个机器人 任意两个机器人的位置不能交换 不能移动到墙里…… 问你需要至少多少时间才能把所有机器人归位。 输入包含多组数据 地图的宽、高和机器人的数量 下面几行表示地图,其中小写字母表示机器人的位置,大写字母表示机器人的终点,'#'表示墙,' '表示可以走的位置…… 输出每组数据下的最短时间 样例输入 5 5 2 ##### #A#B# # # #b#a# ##### 16 4 3 ################ ## ########## ## # ABCcba # ################ 16 16 3 ################ ### ## # ## ## # ## # c# # ## ########b# # ## # # # # # # ## # # ## ## a# # # # # ### ## #### ## # ## # # # # # ##### # ## ## #### #B# # # ## C# # ### # #

bzoj5164: 餐厅计划问题(三分+贪心)

谁说我不能喝 提交于 2020-05-03 22:11:15
  网络流经典题里餐巾计划的加强版...天数变成了$10^5$,那就不能用费用流做了...   考虑费用流的时候,单位费用随流量的增加而减少,也就是说费用其实是个单峰(下凸)函数。   那么可以三分要买的餐巾个数,求费用可以用贪心。   新买的没用就用新买的,否则能慢洗的慢洗,不能慢洗的拿最晚的快洗后可以当天用的去快洗。   有一个错误的贪心是慢洗和快洗的都拿最早的,这样可能会导致快洗的本来可以洗时间更晚一些的,却洗了比较早的餐巾,而这些餐巾本可以在接下来的一天里通过慢洗来省下更多的钱。 #include<iostream> #include <cstring> #include <cstdlib> #include <cstdio> #include <algorithm> #define ll long long using namespace std; const int maxn= 500010 , inf= 1e9; struct poi{ int tim, rest;}q1[maxn], q2[maxn], q3[maxn]; int d, n1, n2, c1, c2, tc, ans= inf; int t[maxn]; inline void read( int & k) { int f= 1 ; k= 0 ; char c= getchar(); while

使用Mongodb实现打卡签到系统

一世执手 提交于 2020-05-02 14:16:35
使用excel文件导入数据,整合mongodb实现打卡签到系统 环境参数 开发工具:IDEA 基础环境:Maven+JDK8 主要技术:SpringBoot、Mongodb SpringBoot版本:2.2.6 实现步骤如下: 1.添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional> true </optional> </dependency> <!-- excel工具 --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId>

Hutool

元气小坏坏 提交于 2020-05-02 14:02:23
Hutool简介 Hutool是一款小而全的开源开发工具类库,在github上拥有将近一万九的star,基本上你能想到的开发当中常需要用到的小轮子,基本上都有具备。学习一下hutool工具包可以避免我们在平常开发中重复造轮子。这款hutool开源库,更新频率快,jar包小仅1.5Mb。对比其他同款类型的基础工具类库来说,是一大优势。因为其他同款类型的基础工具类库多多少少都有基于apache commons做了一些封装。 对于很多小型公司来说,公司内部并没有完善的基础工具类库,使用hutool可以节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务同时可以最大限度的避免封装不完善带来的bug。 Hutool主要组件 模块 介绍 hutool-aop JDK动态代理封装,提供非IOC下的切面支持 hutool-bloomFilter 布隆过滤,提供一些Hash算法的布隆过滤 hutool-cache 简单缓存实现 hutool-core 核心,包括Bean操作、日期、各种Util等 hutool-cron 定时任务模块,提供类Crontab表达式的定时任务 hutool-crypto 加密解密模块,提供对称、非对称和摘要算法封装 hutool-db JDBC封装后的数据操作,基于ActiveRecord思想 hutool-dfa 基于DFA模型的多关键字查找

阿里 EasyExcel 7 行代码优雅地实现 Excel 文件生成&下载功能

孤人 提交于 2020-05-02 00:43:14
欢迎关注个人微信公众号: 小哈学Java , 文末 分享阿里 P8 资深架构师吐血总结的 《Java 核心知识整理&面试.pdf》资源链接 !! 个人网站: https://www.exception.site/essay/how-to-create-excel-by-seven-line-code 目录 一、前言 二、Apache poi、jxl 的缺陷 三、阿里出品的 EasyExcel,安利一波 四、EasyExcel 解决了什么 五、快速上手 六、特殊场景支持 七、Web 下载示例代码 八、需要注意的点 九、总结 一、前言 关于导出 Excel 文件,可以说是大多数服务中都需要集成的功能。那么,要如何优雅快速地( 偷懒地 )去实现这个功能呢? 你可能第一想法是:这还不简单?用 Apache 开源框架 poi, 或者 jxl 都可以实现啊。面向百度编程,把代码模板 copy 下来,根据自己的业务再改改,能有多难? 嗯.. 的确不难,但是你的代码可能是下面这个熊样子的: 上面这段代码看上去是不是又臭又长呢?今天,小哈将教您如何使用 7 行代码搞定 Excel 文件生成功能! 二、Apache poi、jxl 的缺陷 在说如何实现之前,我们先来讨论一下传统 Excel 框架的不足!除了上面说的,Apache poi、jxl 都存在生成 excel 文件不够简单优雅快速外

【基础设计】Spring整合EasyExcel

人盡茶涼 提交于 2020-05-01 23:19:25
前言 Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一些缺陷,比如07版Excel解压缩以及解压后存储都是在内存中完成的,内存消耗依然很大。easyexcel重写了poi对07版Excel的解析,能够原本一个3M的excel用POI sax依然需要100M左右内存降低到几M,并且再大的excel不会出现内存溢出,03版依赖POI的sax模式。在上层做了模型转换的封装,让使用者更加简单方便。 <p align="right">——<a href="https://github.com/alibaba/easyexcel" target="_blank">easyexcel</a></p> 起步 maven or gradle springboot api or blog 快速上手 EasyExcelApi EasyExcelGitHubUrl 简单需求demo demo地址 喜欢直接看项目的可以直接 >> demo-easy-excel 内容大致浏览 引入easyexcel 引入easyexcel (maven为例),引入easyexcel <dependency> <groupId>com.alibaba</groupId>