zoukankan      html  css  js  c++  java
  • mysql 导入大批量excel数据

    excel转换为csv格式

    通过excel保存的时候选择为csv格式即可

    创建数据库以及表格

    CREATE DATABASE 数据库名;
    
    /*!40101 SET NAMES utf8 */;
    
    /*!40101 SET SQL_MODE=''*/;
    
    /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
    /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
    /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
    /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
    CREATE DATABASE /*!32312 IF NOT EXISTS*/`myemployees` /*!40100 DEFAULT CHARACTER SET gb2312 */;
    
    USE `item`;
    
    /*Table structure for table `departments` */
    
    DROP TABLE IF EXISTS `stock_rate`;
    
    
    CREATE TABLE `stock_rate` (
      `名称` varchar(20) ,
      `类型` varchar(20) ,
      `终端售价价格带` varchar(200),
      `SP码`varchar(200) ,
      PRIMARY KEY (`SP码`) 
    #其实不用SP码作为主键
    ) ENGINE=InnoDB AUTO_INCREMENT=271 DEFAULT CHARSET=gb2312;
    
    
    /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
    /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
    /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
    /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
    
    

    load local 数据涉及到的问题

    在开始执行之前一定要先去看一下在dos中是否可以执行mysql -u root -p命令,确认无误以后以下代码在终端完成执行
    接着执行
    mysql -u root --local-infile=1 -p

    use item;
    load data local infile 'D:422stock_rate.csv' into table stock_rate
    CHARACTER SET utf8 
    FIELDS TERMINATED BY ',' 
    LINES TERMINATED BY '
    '
    IGNORE 1 LINES
    (名称, 类型, 终端售价价格带, SP码);
    

    https://www.zhihu.com/question/426972214

    导入数据

    use item;
    load data infile 'C:\ProgramData\MySQL\MySQL Server 8.0\Uploads\stock_source.csv' into table stock_source
    CHARACTER SET utf8 
    FIELDS TERMINATED BY ',' 
    LINES TERMINATED BY '
    '
    IGNORE 1 LINES
    (sp码,spname, 仓库, 城市, 方舱出库量,方舱入库数据详情,方舱库存量,wms出库总数量,wms入库数据详情,wms库存量,wms库存成本,方舱在途数量,wms在途数量);
    

    创建表格

    uSE `item`;
    
    /*Table structure for table `departments` */
    
    DROP TABLE IF EXISTS `stock_source`;
    
    
    CREATE TABLE `stock_source` (
      `sp码` varchar(200),
      `spname` varchar(200),
      `仓库` varchar(20),
      `城市` varchar(20),
      `方舱出库量` int default 0,
      `方舱入库数据详情` varchar(20),
      `方舱库存量` int,
      `wms出库总数量` int default 0,
      `wms入库数据详情` varchar(200),
      `wms库存量` int default 0,
      `wms库存成本` float default 0,
      `方舱在途数量` int default 0,
      `wms在途数量` int default 0
    ) ENGINE=InnoDB AUTO_INCREMENT=271 DEFAULT CHARSET=gb2312;
    
    
    /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
    /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
    /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
    /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
    

    数据源:

    CREATE TABLE `249_price` (
      `名称` varchar(200) ,
      `类型` varchar(200) ,
      `标品库名称` varchar(200),
      `SP码` varchar(200) ,
      `成本` float default 0 not null
    --   PRIMARY KEY (`SP码`) 
    ) ENGINE=InnoDB AUTO_INCREMENT=271 DEFAULT CHARSET=gb2312;
    
    
    load data infile 'C:\ProgramData\MySQL\MySQL Server 8.0\Uploads\stock_new.csv' into table stock
    CHARACTER SET utf8 
    FIELDS TERMINATED BY ',' 
    LINES TERMINATED BY '
    '
    IGNORE 1 LINES
    (sp码,spname,仓库,城市,方舱出库量,wms出库总数量,wms库存量,wms库存成本,wms在途数量);
    
    CREATE TABLE `stock` (
      `sp码` varchar(200) ,
      `spname` varchar(200) ,
      `仓库` varchar(200),
      `城市` varchar(200) ,
      `方舱出库量` int default 0 not null,
      `wms出库总数量` int default 0 not null,
      `wms库存量` int default 0 not null,
      `wms库存成本` float default 0 not null,
      `wms在途数量` int default 0 not null
    --   PRIMARY KEY (`SP码`) 
    ) ENGINE=InnoDB AUTO_INCREMENT=271 DEFAULT CHARSET=gb2312;
    
    
    
    from openpyxl import load_workbook
    wb = load_workbook("stock4.xlsx")
    current_sheet = wb['各前置仓单品周转']
    # 创建第一张表:各前置仓单品周转
    # current_sheet['A1'] = 'sp码'
    # current_sheet['B1'] = 'spname'
    # current_sheet['C1'] = '仓库'
    # current_sheet['D1'] = '城市'
    # current_sheet['E1'] = '前30天销售'
    # current_sheet['F1'] = '库存周转天数'
    # current_sheet['G1'] = '分类'
    # wb.save(filename="stock2.xlsx")
    source_sheet = wb['库存']
    for j in range(1, 5):
        for i in range(2, source_sheet.max_row+1):
            current_sheet.cell(row=i, column=j).value = source_sheet.cell(row=i, column=j).value
    for i in range(2, current_sheet.max_row+1):
        current_sheet[f'E{i}'] = f'=sumifs("C:UsersxujinPycharmProjectspythonProject2[sales.xlsx]Sheet1!"$F:$F,"C:UsersxujinPycharmProjectspythonProject2[sales.xlsx]Sheet1!"$E:$E,A{i},"C:UsersxujinPycharmProjectspythonProject2[sales.xlsx]Sheet1!"$I:$I,C{i})'
    
        
    wb.save(filename="stock6.xlsx")
    
    
    
    from openpyxl import load_workbook
    wb = load_workbook("stock.xlsx")
    current_sheet = wb.create_sheet('各前置仓单品周转', 0)
    current_sheet = wb['各前置仓单品周转']
    # 创建第一张表:各前置仓单品周转
    current_sheet['A1'] = 'sp码'
    current_sheet['B1'] = 'spname'
    current_sheet['C1'] = '仓库'
    current_sheet['D1'] = '城市'
    current_sheet['E1'] = '前置仓库存量'
    current_sheet['F1'] = '前30天销售'
    current_sheet['G1'] = '库存周转天数'
    current_sheet['H1'] = '分类'
    source_sheet = wb['库存']
    
    list0 = [1, 2, 3, 4, 10]
    for i in range(2, source_sheet.max_row+1):
        for k, j in enumerate(list0):
            current_sheet.cell(row=i, column=k+1).value = source_sheet.cell(row=i, column=j).value
    for i in range(2, current_sheet.max_row+1):
        current_sheet[f'F{i}'] = f"=SUMIFS('C:\Users\xujin\PycharmProjects\pythonProject2\[sales.xlsx]Sheet1'!$G:$G,'C:\Users\xujin\PycharmProjects\pythonProject2\[sales.xlsx]Sheet1'!$F:$F,A{i},'C:\Users\xujinPycharmProjects\pythonProject2\[sales.xlsx]Sheet1'!$L:$L,C{i})"
        current_sheet[f'G{i}'] = f'=IFERROR(IF(E{i}>0,E{i}/(0{i}/30),0),"有库存无销售")'
    wb.save(filename="stock1.xlsx")
    
    
  • 相关阅读:
    sed命令详解 皇星客栈
    FD_set FD_zero 皇星客栈
    linux tr命令详解 皇星客栈
    解决中文乱码问题(Ubuntu) 皇星客栈
    FIFO深度 皇星客栈
    输入阻抗 皇星客栈
    APROM Data Flash LDROM 皇星客栈
    kubernetes 1.21 部署业务
    kubernetes 1.21部署 cephcsi rbd
    kubernetes 1.21 部署 dashboard
  • 原文地址:https://www.cnblogs.com/ivan09/p/14698656.html
Copyright © 2011-2022 走看看