将excel文件导入到Mysql数据库中
- excel97-03格式,不支持07以后的格式
- 用office打开excel文件,如果单元格有感叹号,尽量根据说明修正,否则会出现意想不到的问题
- 一个excel文件只能有1个sheets
- GET /files 获取文件列表
- response:
["filename1","filename2",...]
- GET /files/:id 获取指定文件
- POST /files 上传文件
- request:html表单形式的文件上传,支持一次上传多个文件
- response:
[ { "status":"succ", // 成功 "mesg":"filename" // 服务器上保存的文件名 }, { "status":"failed", // 失败 "mesg":"errorInfo" // 错误信息 } ]
{"status":"failed",mesg:"errorInfo"} // 操作失败以及错误信息
- POST /files/:id 上传文件,并指定文件名,若存在同名文件,则不做任何操作
- request:html表单形式的文件上传,若上传多个文件,__随机__取其中一个
- response:
{"status":"succ",mesg:"filename"} or {"status":"failed",mesg:"errorInfo"}
- PUT /files/:id 更新指定文件名的文件
- request:html表单形式的文件上传,若上传多个文件,__随机__取其中一个
- response:
{"status":"succ",mesg:"filename"} or {"status":"failed",mesg:"errorInfo"}
- DELETE /files/:id 删除指定文件名的文件
- response:
{"status":"succ"} or {"status":"failed"}
- HEAD /files/:id 判断文件是否存在
- response: 200 or 404
- 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":"" // 具体出错信息 }
- request
{ "connection":{}, //参见node-mysql connection options "colModels":[ { tableName:"tableName", // 表名称,必填 "alterTable":true|false, // 是否修改表结构,可选 "columnMapping":[ // 表字段映射规则 { "name":"name", // 表字段名称 "alterType":"ADD"|"MODIFY", // 与修改表有关,表示对该列是增加还是修改类型 "dataType":"", // 与修改表有关,该字段的数据库类型 "valueGenerator":"", //值生成方式,可选值见下表注:具体值需要配置同名字段,如valueGenerator的值为fileColumn,则增加fileColumn字段表示具体值 } ] } ], "preProcessors":[] // 预处理器 }
值 含义 备注 fileColumn 对应文件的某一列 该字段若省略表示与name值相同 relatedId 对应某张表同一行的id 该表的配置必须放在前面 constant 常量
下载完整项目包,进入到package.json所在目录,执行npm install
- 进入package.json所在目录,执行npm start,默认3000端口
- 指定端口:
- linux: PORT=[port] npm start
- windows: set PORT=[port] & npm start