Ajax asp.net 导入Excel

首先使用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;
        }
    }
时间: 2024-11-06 03:53:52

Ajax asp.net 导入Excel的相关文章

ASP.NET 导入EXCEl文档

鉴于教务一般都是手动输入学生信息,在未了解本校数据库的客观情况之下,我们准备设计一个导入excel文档中学生信息如数据库的功能.结合网上各类大牛的综合版本出炉.. 首先具体的实现思想如下: 1.先使用FileUpload控件fuload将Excel文件上传到服务器上得某一个文件夹. 2.使用OleDb将已经上传到服务器上的Excel文件读出来,这里将Excel文件当做一个数据库来读.在联系数据库语句中,Data Source就是该文件在服务器上得物理路径 3.将第二步中读出的数据以DataTab

ASP.NETCore -----导入Excel文件

前端上传excel文件利用npoi读取数据转换成datatable(netcore坑爹啊,用的vs2017竟然不能可视化) 前端界面 @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>Xlsx</title> </hea

Asp.Net 导入Excel表格

前台页面: <div align="center" style="background-color:Beige"> <table style="width: 576px; border-collapse: separate; text-align: center"> <tr><td>Excel导入SQL数据库</td></tr> <tr> <td style

Asp.net 导入Excel

前台代码: <body> <form id="form1" runat="server"> <div> <asp:FileUpload ID="FileUpload" runat="server" /> <asp:Button ID="btn" runat="server" Text="Button" OnClic

ASP.NET——导入Excel数据

原文:http://www.cnblogs.com/xiaopin/archive/2011/03/31/2001199.html 本代码目前只支持xls文件,不支持xlsx文件. protected void btnImport_Click(object sender, EventArgs e)    {        if (FileUpload1.HasFile == false)//HasFile用来检查FileUpload是否有指定文件        {            Resp

C#,Asp.NET 导入Excel,时间格式一串数字转换.

在Excel中.日期或者时间格式为:42093.6506944444 或者 0.650694444444444 大于0 表示有日期(2015-03-30),小于零则是时间(15:37) 在C# 导入读取这列时,转换会发生错误; 现在将这格式转换为正常的日期格式:如下 1 /// <summary> 2 /// 数字转换时间格式 3 /// </summary> 4 /// <param name="timeStr">数字,如:42095.706944

Asp.NET MVC 导入Excel数据教程 手把手教你系列!!!

先上效果图 1.引言 小弟最近接了个大学生的毕业设计,收了100块钱让做一个ASP.NET MVC导入Excel到数据库的功能,由于以前没做过就到处搜索资料,但是发现网上的资料不是直接贴一大堆乱起八遭的源码,就是需要借用NPOI第三方类库太麻烦了,况且预算才100RMB简直不值得,所以小弟尝试自己动手丰衣足食,所以就有了这篇博客. 先上一张小弟的思路图: (说明:没有安装做流程图的软件!凑合着看吧) 2 进入正题 首先跟着小弟先创建一个默认的MVC项目(相信大家都会创建,这里就不演示了) 第一步

asp.net采用OLEDB方式导入Excel数据时提示:未在本地计算机上注册&quot;Microsoft.Jet.OLEDB.4.0&quot; 提供程序&quot;

asp.net采用OLEDB方式导入Excel数据时提示:未在本地计算机上注册"Microsoft.Jet.OLEDB.4.0" 提供程序" 笔者在项目中做做了一个从Excel表格中导入数据的模块.大体上asp.net项目中导入Excel大体分成三类: 1)采用c#内置方案System.Data.OleDb(限制较小, 通用) 2)采用Excel的COM组件(会有版本问题) 3)采用伪Excel文件.即使用文本流的方式根据需求自己定义数据格式.同时在服务端进行反格式化 笔者采

框架 day50 BOS项目 4 批量导入(ocupload插件,pinyin4J)/POI解析Excel/Combobox下拉框/分区组合条件分页查询(ajax)/分区数据导出(Excel)

知识点: 批量导入(ocupload插件,pinyin4J /POI解析Excel(apache POI) /区域分页查询 /Combobox下拉框 /分区组合条件分页查询(ajax) /分区数据导出(Excel下载) BOS项目笔记第4天 1.    区域批量导入功能 *Ajax不支持文件上传. *上传并且不刷新上传页面原理: Target到一个0,0,0的隐藏iframe里,造成一个没有刷新的假象 <form target="myIframe" action="ab