加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Ajax asp.net 导入Excel

发布时间:2020-12-16 02:05:43 所属栏目:百科 来源:网络整理
导读:首先使用ajax以POST的方式提交excel文件: $("#btnUploadExcelSave").click(function () { var fileObj = document.getElementById("file").files[0]; // js 获取文件对象 var FileController = "../FileHandler.ashx?type=3"; // 接收上传文件的后台地址 //
首先使用ajax以POST的方式提交excel文件:
$("#btnUploadExcelSave").click(function () {

                var fileObj = document.getElementById("file").files[0]; // js 获取文件对象

                var FileController =  "../FileHandler.ashx?type=3";                    // 接收上传文件的后台地址 


                // FormData 对象

                var form = new FormData();

                form.append("author","hooyes");                        // 可以增加表单数据

                form.append("file",fileObj);                           // 文件对象


                // XMLHttpRequest 对象

                var xhr = new XMLHttpRequest();

                xhr.open("post",FileController,true);

                xhr.onload = function () {

                    // alert("上传完成!");

                };

                xhr.upload.addEventListener("progress",progressFunction,false);



                xhr.send(form);
});

然后定义后台方法处理Excel:

FileHandler.ashx
/// <summary>
    /// Excel导入到数据库
    /// </summary>
    /// <param name="context"></param>
    public string UploadExcelData(HttpContext context)
    {
        var flist = context.Request.Files;
        for (int i = 0; i < flist.Count; i++)
        {
            
            var c = flist[i];
            string IsXls = System.IO.Path.GetExtension(c.FileName).ToString().ToLower();
            if (IsXls != ".xls")
            {
                return "格式不正确!";
            }
            string savePath = System.Configuration.ConfigurationManager.AppSettings["temFilePath"].ToString() + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".xls";
            c.SaveAs(context.Server.MapPath(savePath));//将文件保存到服务器,因为火狐浏览器获取不到客户端的路径。
            DataSet ds = ExcelSqlConnection(context.Server.MapPath(savePath),"tranportTask");//将excel文件转换为DataSet。
            //这里处理你业务逻辑...
}
        return "";
    }
public static System.Data.DataSet ExcelSqlConnection(string filepath,string tableName)
 {
 string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1'";
 System.Data.OleDb.OleDbConnection ExcelConn = new System.Data.OleDb.OleDbConnection(strCon);
 try
 {
 string strCom = string.Format("SELECT * FROM [Sheet1$]");
 ExcelConn.Open();
 System.Data.OleDb.OleDbDataAdapter myCommand = new System.Data.OleDb.OleDbDataAdapter(strCom,ExcelConn);
 DataSet ds = new DataSet();
 myCommand.Fill(ds,"[" + tableName + "$]");
 ExcelConn.Close();
 return ds;
 }
 catch
 {
 ExcelConn.Close();
 return null;
 }
 }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读