了解一下-关于Excel神操作
拿Excel当PhotoShop作画.
Excel函数版bad apple.
甚至用Excel编程...
Excel表格,对里面的数据进行比对和整理,首先不可能一个一个去修改去填写数据啊,利用函数啊或其他什么Excel功能我这三脚猫的Excel操作在满足不了需求啊,另辟蹊径把数据导入到MySQL数据库的形式进行数据操作,得到需要的数据在给领导。
Excel数据导入MySQL数据库
- 任何一个MySQL客户端(如:Navicat、SQLyog)都有导入向导,我用的是SQLyog
1. 在工具栏选择(高级工具->导入外部数据)会出现一个导入数据向导,直接点击下一步
2. 然后选择导入的文件是什么格式的,选择文件位置,再点下一步
3. 选择导入的数据库,默认是当前连接的数据库,所以直接下一步
4. 由于是从Excel表格导入数据,Excel中有列名,所以选择从数据源拷贝数据->下一步
5. source下对应的是Excel中的Shell名,勾选你需要导入的Shell数据;Destination选择导入的表,也可以直接以Excel数据为表,直接设置一个表名;Map设置Exce列与表字段映射关系;设置好后,就可以点击下一步
6. 后面都是点下一步,直到最后窗口日志,出现successful。最后完成
效果图
{/gird-item}
{gird-item}
{/gird-item}
MySQL存储过程FETCH INFO与WHILE和LOOP的使用
WHILE实现
CREATE DEFINER=`root`@`localhost` PROCEDURE `P_GX_LZPI1_202`()
BEGIN
#Routine body goes here...
DECLARE flag INT DEFAULT 0;
DECLARE tab_num varchar(10);
DECLARE curJob CURSOR FOR SELECT `表顺序号` FROM `冷轧pi系统字段1_202` GROUP BY `表顺序号`;
# 溢出处理,查询是否有下一个数据,没有将标识设为1
DECLARE CONTINUE HANDLER FOR NOT FOUND SET flag = 1;
OPEN curJob;
# 取值设置到tab_num中
FETCH curJob INTO tab_num;
# 使用while循环
WHILE flag != 1 DO
# 主要操作过程
INSERT INTO `冷轧test`
SELECT a.`机组号`,
a.`机组中文名`,
a.`工艺顺序号`,
a.`工艺段`,
a.`表顺序号`,
a.`表名`,
(@i:=@i+1) AS 字段顺序号,
a.`字段名` ,
a.`字段中文名`,
a.`是否需对齐`
FROM `冷轧pi系统字段1_202` a,(SELECT @i:=0) AS it WHERE a.`表顺序号` = tab_num;
# 把游标向后移一位
FETCH curJob INTO tab_num;
# 结束循环
END WHILE;
CLOSE curJob;
END
LOOP方式实现
CREATE DEFINER=`root`@`localhost` PROCEDURE `P_GX_LZPI2_112`()
BEGIN
DECLARE tab_num VARCHAR(10);
DECLARE done INT DEFAULT FALSE;
DECLARE curJob CURSOR FOR ( -- 定义
SELECT `表顺序号` FROM `冷轧pi系统字段1_202` GROUP BY `表顺序号`
);
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; -- 监听器
OPEN curJob; -- 打开游标
label:LOOP
FETCH curJob INTO tab_num;
IF done THEN LEAVE label;
END IF;
INSERT INTO `冷轧test`
SELECT a.`机组号`,
a.`机组中文名`,
a.`工艺顺序号`,
a.`工艺段`,
a.`表顺序号`,
a.`表名`,
(@i:=@i+1) AS 字段顺序号,
a.`字段名` ,
a.`字段中文名`,
a.`是否需对齐`
FROM `冷轧pi系统字段2_112` a,(SELECT @i:=0) AS it WHERE a.`表顺序号` = tab_num;
END LOOP label;
CLOSE curJob; -- 关闭游标
END
评论 (0)