C#_.NetFramework_Web项目_EXCEL数据导入

B-1:EXCEL数据导入--C#获取数据:

public class ExcelHelp
    {
        //获取http请求Request对象
        public static HttpRequest baseRequest = HttpContext.Current.Request;
        //获取http请求Response对象
        public static HttpResponse baseResponse = HttpContext.Current.Response;
        /// <summary>
        /// 获取Post请求EXCEL文件数据
        /// </summary>
        /// <param name="fileFormName">EXCEL的表单名称</param>
        /// <returns></returns>
        public static DataTable GetExcelData(string fileFormName)
        {
            //获取Post请求--表单文件的文件名
            string uploadFileName = baseRequest.Files[fileFormName].FileName;
            //上传文件到指定目录(项目根目录/Resources/uploadFileName)--可根据项目文件目录进行调整
            string path = HttpContext.Current.Server.MapPath("~/Resources/" + uploadFileName);
            baseRequest.Files[fileFormName].SaveAs(path);

            DataTable dataTable = new DataTable();
            DataSet dataSet = new DataSet();
            //解析文件数据,并存入服务器
            //备注: "HDR=yes;"是说Excel文件的第一行是列名而不是数据,"HDR=No;"正好与前面的相反。
            //"IMEX=1 "如果列中的数据类型不一致,使用"IMEX=1"可必免数据类型冲突。 
            string strConn = string.Format("Provider = Microsoft.ACE.OLEDB.12.0; Data Source = {0}; Extended Properties = 'Excel 8.0;HDR=Yes;IMEX=1';", path);
            OleDbDataAdapter oada = new OleDbDataAdapter("select * from [Sheet1$]", strConn);
            oada.Fill(dataSet);

            if (dataSet.Tables.Count > 0)
            {
                dataTable = dataSet.Tables[0];
            }
            if (System.IO.File.Exists(path))
            {
                //如果存在则删除
                System.IO.File.Delete(path);
            }
            return dataTable;
        }
    }

猜你喜欢

转载自www.cnblogs.com/lxhbky/p/11759660.html