1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > VFPBS上传EXCEL并保存MSSQL到数据库中

VFPBS上传EXCEL并保存MSSQL到数据库中

时间:2019-04-06 03:27:13

相关推荐

VFPBS上传EXCEL并保存MSSQL到数据库中

开发环境

后端:VFP SP2 7423 +祺佑三层开发框架(猫框)

前端:VUE2.0+Element

思路

实现BS上传就是利用猫框的importexcel类将EXCEL文件转换为临时表,将临时表插入到DAL_CA中实现一键保存。

1. 首先来看一下MSSQL数据结构

2. 代码生成器生成DAL_CA类

3. 将生成的DAL_CA类保存到开发框架的DAL目录中

类名同文件名

4. 编写业务逻辑controller类

Define Class ctl_skin_ht as session*--上传导入文件Procedure upfileoResult=GetUpFile() &&返回为集合对象*--原文件名cOldFilename=oResult.ofieldcoll.Item("file").filename &&文件名 跟上传name(微信)对应 key (mui) 对应cExtName=Justext(cOldFilename) &&扩展名IF !INLIST(UPPER(cExtName),"XLS","XLSX")ERROR "必须上传EXCEL文件"ENDIF cFilename=Ttoc(Datetime(),1)+Right(Transform(Second()*1000),6)cFilename=cFilename+"."+cExtnamecMydata=oResult.ofieldcoll.Item("file").fielddata &&文件内容cFilePath=getwwwrootpath("upfile")If !Directory(cFilePath)Md &cFilePath &&目前只在调试服务器下执行成功,发布时要预先创建EndifIf Strtofile(cMydata,cFilePath+cFilename)<=0Error "写入文件失败,目录是否存在且可读写"Endif*--导入EXCEL生成临时表xx=Newobject("importexcel","importexcel.prg")xx.cursorstruc="手机型号 c(240),编号 c(50)"xx.Alias="tmpxxx"If !xx.Import(Sys(5)+Sys()+"\"+cFilePath+cFilename)Error xx.msgEndif*-- 临时表写入DAL类,实现一键保存oDAL=Newobject("Dal_skin","Dal_skin.prg")oDAL.Nodata=.T.If !oDAL.CursorFill(.T.)Aerror(laerror)Error laerror(2)EndifcTmpAlias=oDAL.AliasInsert Into &cTmpAlias(model,skincode,mainmodel,types,Type,Memo,price) Select * From tmpxxxIf !oDAL.Save()Error oDal.msgEndifReturn cursortojson(oDAL.alias)EndprocENDDEFINE

5. 前端页面,也可以自己写上传的页面

放下一个上传组件

<el-upload :on-success="handle_success"class="upload-demo":action="upurl" multiple:limit="1"><el-button size="small" type="primary">点击上传</el-button><div slot="tip" class="el-upload__tip">只能上传excel文件</div></el-upload>

JS代码

export default {components: {},data() {return {upurl:"ctl_skin_ht.fsp?proc=upfile"},methods: {handle_success(res){console.log(res);if(res.errno!=0){this.$message.warning(res.errmsg); return; }this.$message.warning("上传成功"); },}}

运行调试服务器,测试上传,完美成功。但是发布到IIS却出现了:

下篇继续填坑

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。