专注于.Net

享受编程的乐趣
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

怎样读取本地Excel数据,并保存到时服务器

Posted on 2009-03-04 14:22  古道飘零客  阅读(1247)  评论(0编辑  收藏  举报
private DataSet ReadExcelFile()
        {
            string sArgs;
            string filePath = "";
            string fileExtend = "";//文件扩展名
            int fileSize = 0;//文件大小

            filePath = this.fileDaoRu.PostedFile.FileName.ToLower().Trim();

            //取得上传前的文件(存在于客户端)的文件或文件夹的名称,组成数组.例如:C:aaaa.txt,那么Names.lenth就为3
            string[] names = filePath.Split('\\');
            //取得文件名
            string name = names[names.Length - 1];
            string serverPath = this.Server.MapPath("\\");//获得服务器端的根目录

            //判断是否有该目录
            if (!Directory.Exists(serverPath + "file"))
            {
                Directory.CreateDirectory(serverPath + "file");
                serverPath = serverPath + "file";
            }
            filePath = serverPath + name;
            //如果存在,删除文件
            //if(File.Exists(filePath))
            //{
            //    File.Delete(filePath);
            //}
            // 上传文件
            this.fileDaoRu.PostedFile.SaveAs(filePath);

            //得到文件的大小
            fileSize = this.fileDaoRu.PostedFile.ContentLength;
            //得到扩展名
            fileExtend = filePath.Substring(filePath.IndexOf("."));
            if (fileSize == 0)
            {
                sArgs = @" <script language=javascript>window.alert( '找不到该文件!' ); </script>";
                Page.Response.Write(sArgs);
                return null;
            }
            if (fileExtend != ".xls")
            {
                sArgs = @" <script language=javascript>window.alert( '请确认您所导入的文件是否EXCEL文件!!' ); </script>";
                Page.Response.Write(sArgs);
                return null;
            }
            DataSet ds = new DataSet();
         
            try
            {
                OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=" + filePath);
                if (conn.State != ConnectionState.Open)
                {
                    conn.Open();
                }
                else
                {
                    sArgs = @" <script language=javascript>window.alert( 'EXCEL文件正在使用!' ); </script>";
                    Page.Response.Write(sArgs);
                    return null;
                }
                OleDbCommand com = conn.CreateCommand();
                com.CommandText = "select * from [sheet1$]";
                com.CommandType = CommandType.Text;
                OleDbDataAdapter adapter = new OleDbDataAdapter(com);
             

                adapter.Fill(ds);
                adapter.Dispose();
                conn.Close();
                conn.Dispose();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
         
            return ds;
        }

这个是单独的导一个EXCEL文件数据,先上传到服务器,然后获取EXCEL文件数据添加在DataSet中,然后遍历DataSet插入数据库