1 Star 0 Fork 2

小迷彩 / excel导入小程序

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

Excel 小程序

最近版本更新

v1.0.7

  1. 修复程序二中二次算法错误的问题

v1.0.6

  1. 修复 Top 算法错误

v1.0.5

  1. 修复已知问题
  2. 文件输出名称更改为程序名+时间,更加可视化
  3. TOP 算法中系数更改为 10000

v1.0.4

  1. 新增数据类型检测,加快执行速度
  2. 对所有数据库异常记录日志
  3. 修复已知问题

v1.0.3

  1. 修复已知问题
  2. 优化程序二上传速度
  3. 增加某些异常检测
  4. 程序一运行时创建表结构

v1.0.2

  1. 减少程序一的内存使用
  2. 程序一加入二次计算
  3. 程序二输出列新增求和算法
  4. 程序二加入二次计算

v1.0.1

  1. 优化了程序二的速度。
  2. 增加了程序二执行中的日志输出。

v1.0

  1. 修复在程序二的顶部算法中因为输出为0导致的错误

v0.9.9

  1. 增加重复列输出的检测与过滤
  2. 增加程序二数据插入时对数据的转义

v0.9.8

  1. 修复列名为关键字时无法生成程序一的表格
  2. 修复因为输入列为非数字引起的程序二错误,从而无法生成表格

v0.9.7

  1. 在程序二中,TOP 条件按自定义分类过滤
  2. 在程序二中,输出项求和由原先只包括TOP算法的字段改为所有字段
  3. 增加系统信息页面

v0.9.5

  1. 前端增加错误页面
  2. 后台增加错误日志记录
  3. TOP 条件按分类过滤
  4. 修复程序一输出日期列时数据库崩溃的问题

v0.9.3

  1. 优化程序一输出 Excel 速度

v0.9.2

  1. 上线前的最后一个版本,在功能上接近正确
  2. 修复偶发的TOP值计算不正确

v0.8.9

  1. TOP 过滤增加排序

v0.8.8

  1. 优化上传速度
  2. 修正权重百分比

v0.8.7

  1. 前端增加 Loading 在上传的时候
  2. 前端修复两个显示的BUG

v0.8.6

  1. 输入大写的字段名,导致输出的计算列的数据为空
  2. 对插入的Excel数据进行转义,防止因非法字符而失败

v0.8.5

  1. 程序一输出列中如果不包括去重列,则给出提示
  2. 修复 TOP 算法中,自定义类目中的最大值为 0,导致不能下载的问题

v0.8.4

  1. 修复程序二一些BUG,比如有概率标题输出错误的问题。

v0.8.3

  1. 程序二Excel格式检查
  2. 修复程序多个BUG

v0.8.2

  1. 程序一可以重复上传文件,覆盖之前的文件
  2. 最后一天和最近一天的时间计算值错误
  3. Excel 格式检查 BUG
  4. 可以对同一列名进行多次计算

v0.8

  1. 不再对列当中包含中文进行检测,如果包含,则该列计算结果为零
  2. 完成程序二的改写

v0.7.2

  1. 接口一增加没有上传 Excel 时的提醒
  2. 修复错误的"列中包含中文的提示"
  3. 在"列的中文提示中"包含该列名
  4. 支持用户输入大写的列名
  5. 对用户输入的列名进行检查,如果不存在则给予提示

v0.7

更新时间:2017-10-09

  1. 修复插入数据乱码的问题
  2. 前端增加异常的提示

v0.6

更新时间:2017-10-08

  1. 修复一些BUG
  2. 重写接口一和接口二,极大地改善了代码的可读性

v0.5

更新时间:2017-09-30

这一版本走通流程,并且通过测试。

错误代码

Excel 文件错误

101 -> Excel 文件类型异常

Excel 数据错误

302 -> 数据列中包含中文异常

303 -> Excel 没有上传异常

页面表单输入错误

401 -> 输出列中不包含去重列异常

402 -> 输出的列名没有找到异常

403 -> 重复输入 TOP 条件异常

404 -> 没有找到符合条件的数据异常

405 -> 过滤条件异常

406 -> 用户在表单中输入了非数值字符异常

数据查询错误

501 -> 数据查询失败异常 502 -> 数据插入失败异常 503 -> 创建表结构发生异常

通用错误

601 -> 系统发生严重错误 602 -> 被除数为零异常 603 -> 参与计算的元素非数值异常

特殊的写法

Class Sheet

两个 MySQLi 的连接

之所以创建两个 MySQLi 的连接,是因为第一个是用以读取大批量的数据,第二个用以获取小批量的数据。第一个读取不立即获取结果集,所以不能进入第二次查询。第二个连接立即获取结果集,当即释放。

$this->mysqli = new \mysqli('localhost','root','','zhongwen',3306);
$this->mysqli2 = new \mysqli('localhost','root','','zhongwen',3306);

预定义字段

因为插入的字段都是预定义的,所以在 Sheet 类当中设置预定义的字段为成员变量,如下:

// 预定义表字段
private $preDefineField = ['a','b','c','d','e','f','g','h','i','j','k',
	'l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','ab',
	'ac','ad','ae','af','ag','ah','ai','aj','ak','al','am','an','ao',
	'ap','aq','ar','cs','ct','au','av','aw','ax','ay','az','ba','bb',
	'bc','bd','be','bf','bg','bh','bi','bj','bk','bl','bm','bn','bo',
	'bp','bq','br','bs','bt','bu','bv','bw','bx','by','bz'];

其中,asat因为是 MySQL 的保留关键字,所以特意改成了cs,ct

获取查询的字段(错误的写法)

array_splice($this->preDefineField,0,count($outColumns))

$outColumns为用户定义的输出字段,对预定义的字段按照$outColumns的个数进行裁剪, 进而在数据表中查询。

SQL

将 varchar 字段转为 数值进行聚合运算

$sql = 'SELECT max(' . $column . ' + 0) FROM temp_compute WHERE ' .
            $customCategoryField . ' =\'' . $customCategoryValue .  '\'' . $this->conditions 
			. $limit;

601 错误的由来

根本原因是因为前端没有接受到后端正常的传值,进而或跳转到 localhost/undefined页面。 之所以后端没有返回正常的传值是因为后台出现了语法错误。之所以会出现语法错误,是因为 用户输入的参数导致了数组索引的溢出,这种情况出现在程序的很多地方。

为了给用户更友好的提示,当发生 601 错误的时候,就会跳转到 undefined 页面,并且记录下日志以备后续排查问题。

空文件

简介

excel导入小程序,季俊潇开发,臧义蕾维护 展开 收起
PHP
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
PHP
1
https://gitee.com/ydg/excel_import_applet.git
git@gitee.com:ydg/excel_import_applet.git
ydg
excel_import_applet
excel导入小程序
master

搜索帮助