紫昀-成长ING

生我何用、不能狂笑,灭我何用、不减狂骄。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

ASPX页面选择EXCEL文件,并导入数据库

Posted on 2010-02-21 16:51  紫昀-成长ING  阅读(1745)  评论(0)    收藏  举报

问题:需要将用户通过ASPX页面选择的EXCEL文件,导出至数据库中。

解决思路:由于服务器端无法获取用户在客户端选择的文件全路径,所以要先将选择的EXCEL文件上传至服务器端再进行导入操作。使用ASP.NET 2.0控件“FileUpload”。

问题实现:

步骤一:先将用户选择的EXCEL文件上传至服务器端。

  try
        {
            string saveName = System.DateTime.Now.ToFileTimeUtc() + System.IO.Path.GetExtension(this.fupExcel.FileName);

            if (System.IO.Directory.Exists(Server.MapPath("~/UpFile/WageList/")))
            {
                this.fupExcel.SaveAs(Server.MapPath("~/UpFile/WageList/") + saveName);
            }
            else
            {
                System.IO.Directory.CreateDirectory(Server.MapPath("~/UpFile/WageList/"));
                this.fupExcel.SaveAs(Server.MapPath("~/UpFile/WageList/") + saveName);
            }

            string fullPath = Server.MapPath("~/UpFile/WageList/") + saveName;

            DataTable dtTemp = GetOneSheet("Sheet1", fullPath).Tables[0];

   }
        catch
        {
            throw;
        }

 

步骤二:将上传的文件导入至DataSet

  /// <summary>
    /// 导入EXCEL至DataSet
    /// </summary>
    /// <param name="sheetname">要查询的Sheet名称</param>
    /// <param name="Path">EXCEL文件全路径</param>
    /// <returns>EXCEL内容</returns>
    public static DataSet GetOneSheet(string sheetname, string Path)
    {
        try
        {
            string strConn = "Provider=Microsoft.Ace.OleDb.12.0;" + "Data Source=" + Path + ";" + "Extended Properties=Excel 12.0;";
            OleDbConnection conn = new OleDbConnection(strConn);
            conn.Open();
            string strExcel = "";
            OleDbDataAdapter myCommand = null;
            strExcel = "select * from [" + sheetname + "$]";
            myCommand = new OleDbDataAdapter(strExcel, strConn);
            DataSet ds = ds = new DataSet();
            myCommand.Fill(ds, "table1");
            conn.Close();
            return ds;
        }
        catch
        {
            throw;
        }
    }