mvc里如何上传excel然后将里面的数据导入到SQL数据库里 100

希望能得到具体的代码,就是excel每一项对应能导入对应表的对应项里,并且能选择导入哪个表。... 希望能得到具体的代码,就是excel每一项对应能导入对应表的对应项里,并且能选择导入哪个表。 展开
 我来答
HackerRob
2014-01-03
知道答主
回答量:16
采纳率:0%
帮助的人:14万
展开全部

我只有asp.net的,c#也可以使用,但是没测试过java那些的。将Excel里面的数据导入到数据库中的原理就是将Excel里面的数据存储到一个dataTable中,然后将数据一行一行添加到数据库的表里。给你部分代码,相信你能够如此好学,应该能看懂,有些变量你自己研究是什么,不然全部给你打出来了,你就只会copy了。

SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["aa"].ToString());
            con.Open();//数据库连接字符串
            DataTable dtXls = new DataTable();
            if (this.fudAdd.PostedFile.FileName.ToString().Trim() != "" && this.fudAdd.PostedFile.FileName!=null)
            {
                string filePath = this.fudAdd.PostedFile.FileName.ToString().Trim();
                FileInfo fileTag = new FileInfo(fudAdd.PostedFile.FileName);
                string extendedName = fileTag.Extension;
                if (extendedName.ToLower() != ".xls" && extendedName.ToLower() != ".xlsx")
                {
                    Response.Write("<script>alert('请选择一个Excel文件!');</script>");
                    return;
                }
                else
                {
                    dtXls = ExcelToDataTable(filePath,extendedName);
                    if (dtXls==null||dtXls.Rows.Count <= 0 || dtXls.Columns[0].ToString() == "")
                    {
                        Response.Write("<script>alert('请你确认上传的Excel中有资料!');</script>");
                        return;
                    }
                    else
                    {
                        if (dtXls.Columns[0].ToString() != "手机号码" || dtXls.Columns[1].ToString() != "状态")
                        {
                            Response.Write("<script>alert('请确定Excel资料的格式为[手机号码][状态]!');</script>");
                            return;
                        }
                        else
                        {
                            if (dtXls.Rows[0][0].ToString() == "")
                            {
                                Response.Write("<script>alert('请确定Excel资料的格式为[手机号码][状态]!');</script>");
                                return;
                            }
                            else
                            {
                                string result = AddXlsData(dtXls, con);
                                string[] resultData = result.Split('-');
                                string msg = "资料上传成功!共计" + resultData[0] + "条成功," + resultData[1] + "条失败!";
                                Response.Write("<script>alert('" + msg + "');</script>");
                                logwrite.LogOpera(userid, "UnExistMobile_Mag.aspx", "UnExistMobile_Mag.aspx.cs", "成功上传一批空号");//记录log
                                BindData();
                                return;
                            }
                        }
                    }
                }
                con.Close();

//
#region ExcelToDataTable
    /// <summary>
    /// 读取xls文件
  /// Add by
    /// </summary>
    /// <param name="fileName"></param>
    /// <returns></returns>
    protected DataTable ExcelToDataTable(string fileName, string extendedName)
    {
        string strConn = string.Empty;
        if (extendedName.ToLower() == ".xls")
        {
            strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileName + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1';";
        }
        if (extendedName.ToLower() == ".xlsx")
        {
            strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended Properties='Excel 12.0;HDR=YES'";
        }
        OleDbConnection conn = new OleDbConnection(strConn);
        conn.Open();
        System.Data.DataTable schemaTable = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
        string tableName = schemaTable.Rows[0][2].ToString().Trim();
        string strExcel = "";
        OleDbDataAdapter myCommand = null;
        DataSet ds = null;
        strExcel = "Select   *   From   [" + tableName + "]";
        myCommand = new OleDbDataAdapter(strExcel, strConn);
        ds = new DataSet();
        myCommand.Fill(ds, tableName);
        if (ds != null)
        {
            System.Data.DataTable dt = ds.Tables[0];
            return dt;
        }
        else
        {
            return null;
        }
        conn.Close();
        ds.Dispose();
    }
    #endregion
l529291260
推荐于2016-09-20
知道答主
回答量:13
采纳率:0%
帮助的人:9.2万
展开全部
你的mvc描述的概念太广泛了,你要告诉大家,你用的什么语言什么框架,不然给你源码你也用不了啊。
具体流程,无非是三步:
1 读取execel文件内容。高级语言,都会有对应的组件做支持的,
2 见execl内容转化为POJO(简单数据对象)
3 将POJO通过ORM框架。或者自己写sql插入数据库
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式