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:\0422\stock_rate.csv' into table stock_rate CHARACTER SET utf8 FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' 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 '\n' 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 '\n' 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:\Users\xujin\PycharmProjects\pythonProject2\[sales.xlsx]Sheet1!"$F:$F,"C:\Users\xujin\PycharmProjects\pythonProject2\[sales.xlsx]Sheet1!"$E:$E,A{i},"C:\Users\xujin\PycharmProjects\pythonProject2\[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\\xujin\PycharmProjects\\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")

__EOF__

本文作者ivan09
本文链接https://www.cnblogs.com/ivan09/p/14698656.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   烦恼1234  阅读(678)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示