jquery ajax 上传文件 读取电子表格 前后端

该博客介绍了一个使用Ajax和FormData实现的Excel文件上传功能,通过jQuery选择文件,利用FormData对象存储文件数据,然后通过POST方式发送到后台。后台使用C#接收文件,检查文件类型,并进行解析。如果文件为.xls或.xlsx格式,将其保存到指定目录,并对内容进行处理,将数据导入数据库。整个过程涉及前端交互、文件上传和后端处理。
摘要由CSDN通过智能技术生成

<input type="file" id="file1" name="file1" />

$("#file1").change(function () {           
            
            var file = $('#file1')[0].files;//原生的js上files属性存放着input选中的文件数据
            if (file.lenght <= 0) return alert('请选择文件上传')//判断是否选择文件上传
            var formdata = new FormData();//实例化一个formdata对象
            //FormData 接口提供了一种表示表单数据的键值对 key/value 的构造方式
            formdata.append('avatar', file[0]);//通过formdata上的append()方法来追加数据
            $.ajax({
                url: '../PanDian/sctp',//请求访问的地址
                type: 'post',//请求访问方式
                data: formdata,//数据在这里
                processData: false,//true会将传递的数据以字符串形式上传,false则不会转换,原样上传
                contentType: false,//true默认会将发送数据的格式转换成字符串,false则会禁止默认行为
                success: function (res) {
                    console.log(res)
                }
            })
           
        });

static object locker1 = new object();
        public JsonResult sctp()
        {
            string r1 = "";
            lock (locker1)
            {
                string code = "";
                string msg = "";
                string img = "";
                string thumb = "";
                try
                {
                    HttpPostedFileBase file1 = Request.Files[0];
                    if (file1 == null)
                    {
                        code = "0";
                        msg = "未找到上传的文件!";
                    }
                    else
                    {
                        string n1 = file1.FileName;
                        n1 = n1.ToLower();
                        FileInfo fi = new FileInfo(n1);
                        string n2 = "";
                        int n3 = n1.IndexOf(".");
                        if (n3 > 0)
                        {
                            n2 = n1.Substring(0, n3);
                        }
                        else
                        {
                            n2 = n1;
                        }
                        string kzm = fi.Extension;
                        kzm = kzm.ToLower();
                        if (kzm == ".xls" || kzm == ".xlsx"  )
                        {
                            string wjj = DateTime.Now.ToString("yyyyMMdd");
                            if (Directory.Exists(Server.MapPath("../UploadFile/jkm_temp/" + wjj)) == false)//如果不存在就创建file文件夹
                            {
                                Directory.CreateDirectory(Server.MapPath("../UploadFile/jkm_temp/" + wjj));
                            }
                            if (Directory.Exists(Server.MapPath("../UploadFile/jkm/" + wjj)) == false)//如果不存在就创建file文件夹
                            {
                                Directory.CreateDirectory(Server.MapPath("../UploadFile/jkm/" + wjj));
                            }
                            string wjm = DateTime.Now.ToString("HHmmssfff") + 3;
                            string file3 = "../UploadFile/jkm_temp/" + wjj + "/" + wjm + kzm;
                            file1.SaveAs(Server.MapPath(file3));
                            r1 = "../UploadFile/jkm_temp/" + wjj + "/" + wjm + kzm;
                            string r3 = r1.Replace("..", "~");
                            string r2 = "~/UploadFile/jkm/" + wjj + "/" + wjm + kzm;
                            string r4 = "../UploadFile/jkm/" + wjj + "/" + wjm + kzm;
                            string r5 = r2.Replace(".", "m.");
                           
                            code = "1";
                            msg = "上传成功!";
                            
                        }
                        else
                        {
                            code = "0";
                            msg = "文件后缀不正确!";
                        }
                    }

                }
                catch (Exception e1)
                {
                    string r10 = e1.Message;
                    code = "0";
                    msg = r10;
                }
                return Json(new { code = code, msg = msg, img = img, thumb = thumb }, JsonRequestBehavior.AllowGet);
            }
        }

//在nuget添加Spire.Xls

using Spire.Xls;

private Model.sys.return1 dr1(string userid,int pdid,string fileName)
        {
            Model.sys.return1 r1 = new Model.sys.return1();
            r1.code = "";
            r1.msg = "";
            Workbook wb = new Workbook();
            List<Model.pandian.pandian_kucun_mx> list_datas1 = new List<Model.pandian.pandian_kucun_mx>();

            try
            {
                wb.LoadFromFile(@fileName);
                for (int i = 1; i < wb.Worksheets[0].Rows.Count(); i++)
                {
                    var row = wb.Worksheets[0].Rows[i];
                    string[] rows = new string[25];
                    for (int i1 = 0; i1 < 7; i1++)
                    {
                        rows[i1] = row.Cells[i1].Value.ToString().Trim();
                    }
                    if (rows[1] == null || rows[1] == "")
                    {
                        break;
                    }
                    else
                    {
                        Model.pandian.pandian_kucun_mx m_d = new Model.pandian.pandian_kucun_mx();
                       
                        m_d.wzbm = rows[1].Trim();                       
                        m_d.wzmc = rows[2].Trim();
                        m_d.ggxh = rows[3].Trim();
                        m_d.jldw = rows[4].Trim();
                        decimal jhdj = 0;
                        decimal sl = 0;
                        decimal.TryParse(rows[5].Trim(),out  jhdj);
                        decimal.TryParse(rows[6].Trim(), out sl);
                        m_d.create_userid = userid;
                        m_d.pandian_id = pdid;
                        m_d.jhdj = jhdj;
                        m_d.kcsl = sl;
                        if (m_d.wzbm != "" && m_d.kcsl >0)
                        {
                            list_datas1.Add(m_d);
                        }
                    }
                }
                List<Model.pandian.pandian_kucun_mx> list_old = Common.freeSqlHelper.fsqlDb.Select<Model.pandian.pandian_kucun_mx>().Where(a => a.pandian_id == pdid && a.create_userid == userid).ToList();
                List<Model.pandian.pandian_kucun_mx> list_add = new List<Model.pandian.pandian_kucun_mx>();
                List<Model.pandian.pandian_kucun_mx> list_edit = new List<Model.pandian.pandian_kucun_mx>();
                for(int i = 0; i < list_datas1.Count; i++)
                {
                    bool b = false;
                    for (int i1 = 0; i1 < list_old.Count; i1++)
                    {
                        if (list_old[i1].wzbm.Trim() == list_datas1[i].wzbm.Trim())
                        {
                            b = true;
                            break;
                        }
                    }
                    if (b)
                    {
                        list_edit.Add(list_datas1[i]);
                        
                    }
                    else
                    {
                        list_add.Add(list_datas1[i]);
                        list_old.Add(list_datas1[i]);
                    }
                }
                long add1 = 0;
                long edit1 = 0;
                if (list_add.Count > 0)
                {
                    add1 = Common.freeSqlHelper.fsqlDb.Insert(list_add).IgnoreColumns(a => a.ID).ExecuteAffrows(); //批量插入
                }
                for(int i = 0; i < list_edit.Count; i++)
                {
                    edit1+= Common.freeSqlHelper.fsqlDb.Update<Model.pandian.pandian_kucun_mx>()
                            .Set(a => new Model.pandian.pandian_kucun_mx { kcsl= list_edit[i].kcsl })//多个字段信息修改
                            .Where(a => a.create_userid==userid && a.pandian_id==pdid && a.wzbm==list_edit[i].wzbm).ExecuteAffrows();
                }
                if (add1 > 0 || edit1 > 0)
                {
                    r1.code = "1";
                    r1.msg = "本次导入物资,新增" + add1 + "条记录,编辑" + edit1 + "条记录。";
                }
                else
                {
                    r1.code = "0";
                    r1.msg = "本次未导入库存记录!";
                }
                

            }
            catch (Exception ex)
            {
                r1.code = "0";
                r1.msg = ex.Message;
            }
            return r1;
        }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值