Skip to content

hwzhang92/excelToMysql

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

excelToMysql

将excel文件导入到Mysql数据库中



excel文件规范

  • excel97-03格式,不支持07以后的格式
  • 用office打开excel文件,如果单元格有感叹号,尽量根据说明修正,否则会出现意想不到的问题
  • 一个excel文件只能有1个sheets

文件管理API

  1. GET /files 获取文件列表
    • response:
     	["filename1","filename2",...]
     
  2. GET /files/:id 获取指定文件
  3. POST /files 上传文件
    • request:html表单形式的文件上传,支持一次上传多个文件
    • response:
        [
        	{
        		"status":"succ", // 成功
        		"mesg":"filename" // 服务器上保存的文件名
        	},
        	{
        		"status":"failed", // 失败
        		"mesg":"errorInfo"	// 错误信息
        	}
        ]
        
        {"status":"failed",mesg:"errorInfo"} // 操作失败以及错误信息
        
  4. POST /files/:id 上传文件,并指定文件名,若存在同名文件,则不做任何操作
    • request:html表单形式的文件上传,若上传多个文件,__随机__取其中一个
    • response:
     {"status":"succ",mesg:"filename"}
     or
     {"status":"failed",mesg:"errorInfo"}	
     
  5. PUT /files/:id 更新指定文件名的文件
    • request:html表单形式的文件上传,若上传多个文件,__随机__取其中一个
    • response:
     {"status":"succ",mesg:"filename"}
     or
     {"status":"failed",mesg:"errorInfo"}	
     
  6. DELETE /files/:id 删除指定文件名的文件
    • response:
     {"status":"succ"}
     or
     {"status":"failed"}
     
  7. HEAD /files/:id 判断文件是否存在
    • response: 200 or 404

数据库导入API

  1. POST /import?file:=file
    • request
      • GET参数
        file: 文件名
        
      • POST参数
        {} // 参见导入配置说明
        
    • response
        {
        		"code":100|200|201|...,  // 自定义错误码
        		"mesg":"", // 自定义的错误码描述文字
        		"successRows": // code为20X时成功插入的行数,行指的是excel的行
        		"failedRows": // code为20X时未成功插入的行数,行指的是excel的行
        		"info": // 具体错误信息,一个字符串或数组
        }
        info为数组时,每个元素为一个对象,具体形式如下:
        alter failed:
        {
        		"tableName":"", // 修改的表名称
        		"mesg":"" //具体出错信息
        }
        insert success:
        {
        		"index":"", // 数据序号,对应excel文件的行,从0开始
        		"ids":{} // 该行插入到数据库之后的id集合,以tableName作为健,id作为值的一个对象
        }
        insert failed:
        {
        		"index":"", // 数据序号,对应excel文件的行,从0开始
        		"tableName":"", // 如果可能,会有该字段表示具体插入到哪张表时出的错
        		"mesg":"" // 具体出错信息
        }
        

导入配置说明

{
	"connection":{}, //参见node-mysql connection options
	"colModels":[
		{
			tableName:"tableName", // 表名称,必填
			"alterTable":true|false, // 是否修改表结构,可选 
			"columnMapping":[ // 表字段映射规则
				{
					"name":"name", // 表字段名称
					"alterType":"ADD"|"MODIFY", // 与修改表有关,表示对该列是增加还是修改类型
					"dataType":"", // 与修改表有关,该字段的数据库类型
					"valueGenerator":"", //值生成方式,可选值见下表
					
含义 备注
fileColumn 对应文件的某一列 该字段若省略表示与name值相同
relatedId 对应某张表同一行的id 该表的配置必须放在前面
constant 常量
注:具体值需要配置同名字段,如valueGenerator的值为fileColumn,则增加fileColumn字段表示具体值 } ] } ], "preProcessors":[] // 预处理器 }

安装

下载完整项目包,进入到package.json所在目录,执行npm install

启动方式

  • 进入package.json所在目录,执行npm start,默认3000端口
  • 指定端口:
    • linux: PORT=[port] npm start
    • windows: set PORT=[port] & npm start

About

将excel文件导入到Mysql数据库中

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published