C# 读取Excel数据 并对日期是数字的进行处理

//按钮事件

protected void btnQueryExcel_Click(object sender, EventArgs e)
    {
        DataSet ds; string strError;
        string SaveFilePath = Server.MapPath(Page.Request.ApplicationPath) + "//UpLoadExcel";
        if (!System.IO.Directory.Exists(SaveFilePath))
            System.IO.Directory.CreateDirectory(SaveFilePath);
        if (FileUpload1.FileName.Trim() =="")
        {
            alert("请选择要导入的Excel");
            return;
        }
        FileUpload1.SaveAs(SaveFilePath + "//" + FileUpload1.FileName);

        string Sql = "SELECT * FROM [CCS$];";
        bool bRet = ImportDataFromExcelToDs(out ds, SaveFilePath + "//" + FileUpload1.FileName, Sql, out strError);
        if (!bRet)
        {
            alert(strError);
            return;
        }
        if (ds.Tables.Count == 0 && ds.Tables[0].Rows.Count > 0)
        {
            alert("没有数据");
            return;
        }

       if (!QueryExcelData(ds, out strError))
       {
           alert(strError);
            return;
       }
     
    }

  /// <summary>
    /// 将DataSet当中的数据导入到Excel当中
    /// </summary>
    /// <param name="ds"></param>
    /// <param name="strError"></param>
    /// <returns></returns>
    private bool QueryExcelData(DataSet ds, out string strError)
    {
        gvClient.DataSource = null;
        gvClient.DataBind();
        strError = "";
        List<ClientStructure> datas = new List<ClientStructure>();
        try
        {
            #region 给对象赋值

            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                DataRow dr = ds.Tables[0].Rows[i];
                ClientStructure data = new ClientStructure();

                //序号(展现用)
                data.SN = i + 1;
                //公司ID
                data.CorpID = CheckUser().CorpID;
                //客户名称(暂无用)
                data.ClientName = dr[0].ToString().Replace("/n","");

                if (data.ClientName == "")
                {
                    break;
                }
              
                //客户编码(根据客户编码查询客户ID)
                data.ClientKey = dr[1].ToString().Replace("/n", "");

                if (data.ClientKey == "")
                {
                    break;
                }
              
                //月份 查询数据格式为数字
                try
                {
                    data.RecordMonth = DateTime.FromOADate(Convert.ToInt32(dr[2].ToString())).ToString

("yyyy-MM");
                }
                catch
                {
                    data.RecordMonth = "";
                }

                //月份,查询数据格式为日期格式
                try
                {
                    if (data.RecordMonth=="")
                    {
                        data.RecordMonth = Convert.ToDateTime(dr[2].ToString()).ToString("yyyy-MM");
                    }
                }
                catch
                {
                    data.RecordMonth = "";
                }
                //将对象添加到集合当中
                datas.Add(data);
            }
            #endregion
        }
        catch (System.Exception e)
        {
            strError = e.Message;
            return false;
        }
        gvClient.DataSource = datas;
        gvClient.DataBind();



        ViewState["data"] = datas;
        return true;

        //ClientStructureManager manager = new ClientStructureManager();
        //return manager.AddClientStructureFromExcel(datas, out strError);

    }

 

private bool ImportDataFromExcelToDs(out System.Data.DataSet ds, string FileName, string Sql, out string strError)
    {
        ds = new DataSet();
        strError = "";
        string Connection = GetConn(FileName);
        if (Connection.Equals(""))
        {
            strError = "所选文件不是Excel";
            return false;
        }
        System.Data.OleDb.OleDbConnection OConnection = new System.Data.OleDb.OleDbConnection(Connection);
        try
        {
            System.Data.OleDb.OleDbCommand Ocmd = new System.Data.OleDb.OleDbCommand(Sql, OConnection);
            System.Data.OleDb.OleDbDataAdapter adp = new System.Data.OleDb.OleDbDataAdapter(Ocmd);
            OConnection.Open();
            adp.Fill(ds);
            OConnection.Close();
        }
        catch
        {
            if (OConnection.State == ConnectionState.Open)
                OConnection.Close();
        }
        return true;
    }

    private string GetConn(string FileName)
    {
        int index = FileName.LastIndexOf(".");
        string suffix = FileName.Substring(index + 1);
        if (suffix.Equals("xls"))
            return "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FileName + ";Extended Properties=Excel 8.0;";
        else if (suffix.Equals("xlsx"))
            return "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + FileName + ";Extended Properties=Excel 12.0;";
        else
            return "";
    }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值