源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

.Net读取Excel 返回DataTable实例代码

  • 时间:2022-05-17 14:46 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:.Net读取Excel 返回DataTable实例代码
[u]复制代码[/u] 代码如下:
using System; using Microsoft.SharePoint; using Microsoft.SharePoint.WebControls; using System.Data; using System.IO; using System.Linq; using System.Web; using System.Collections; using System.Data.OleDb; using NuctechProject.DTO.Bll; using System.Collections.Generic; namespace NuctechProject.Layouts.Project {     public partial class IntroductionPlan : LayoutsPageBase     {         string url = Common.rootUrl;         private string _strConn; //导入excel时的连接         string pmurl = Common.proUrl;         private UserBLL bll = new UserBLL();         protected void Page_Load(object sender, EventArgs e)         {             hidProid.Value = Request.QueryString["proid"];         }         protected void BtnOK_Click(object sender, EventArgs e)         {             DataTable excelTable = null;             SPSecurity.RunWithElevatedPrivileges(delegate             {                 if (BaseInfoTemplateFile.HasFile)                 {                     List<string> noInput = new List<string>();                     string strLoginName = HttpContext.Current.User.Identity.Name; //获取用户名                     string folderTemp = strLoginName.Substring(strLoginName.LastIndexOf('\\') + 1);                     try                     {                         string extension = Path.GetExtension(BaseInfoTemplateFile.FileName); //获取文件的后缀                         if (extension != null)                         {                             string fileException = extension.ToLower();                             if (fileException == ".xlsx" || fileException == ".xls")                             {                                 #region 读取Excel                                 string fileFolder = Server.MapPath("~/_layouts/15/images/" + folderTemp + "Upfile/");                                 if (!Directory.Exists(fileFolder)) //根目录                                 {                                     Directory.CreateDirectory(fileFolder); //判断上传目录是否存在     自动创建                                 }                                 BaseInfoTemplateFile.SaveAs(Server.MapPath("~/_layouts/15/images/" + folderTemp + "Upfile/" + BaseInfoTemplateFile.FileName));                                 string strFilepathNmae = Server.MapPath("~/_layouts/15/images/" + folderTemp + "Upfile/" + BaseInfoTemplateFile.FileName);                                 string strExcel = ExcelSheetName(strFilepathNmae)[0].ToString();                                 excelTable = ExcelDataSource(strFilepathNmae, strExcel).Tables[0];                                 #endregion                                 //data是excel的数据                                 DataTable data = ExcelDataSource(strFilepathNmae, strExcel).Tables[0]; //try                                     //{                                 if (data != null)                                 {                                                                            foreach (DataRow row in data.Rows)                                         {                                             //读取                                         }                                 }                                 //}                                 //catch (Exception)                                 //{                                 //    Page.ClientScript.RegisterStartupScript(Page.ClientScript.GetType(), "myscript", "<script  type='text/javascript'>$.ligerDialog.closeWaitting();alert('Excel表列名与系统不符合,请检查Excel表列名!');</script>");                                 //    return;                                 //}                             }                             else                             {                                 Page.ClientScript.RegisterStartupScript(Page.ClientScript.GetType(), "myscript", "<script  type='text/javascript'>$.ligerDialog.closeWaitting();alert('您选择的文件不是Excel格式!');</script>");                                 return;                             }                         }                     }                     finally //最终要把临时存储的文件删除                     {                         string strFileFolder = Server.MapPath("~/_layouts/15/images/" + folderTemp + "Upfile/");                         if (Directory.Exists(strFileFolder)) //根目录                         {                             //Directory.CreateDirectory(strFileFolder);//判断上传目录是否存在     自动创建                             Directory.Delete(strFileFolder, true);                         }                         else                         {                             Page.ClientScript.RegisterStartupScript(Page.ClientScript.GetType(), "myscript", "<script  type='text/javascript'>ReturnPageValue();</script>");                         }                     }                 }                 else                 {                     Page.ClientScript.RegisterStartupScript(Page.ClientScript.GetType(), "myscript", "<script  type='text/javascript'>$.ligerDialog.closeWaitting();alert('请选择导入文件!');</script>");                     return;                 }             });         }         protected void BtnClose_Click(object sender, EventArgs e)         {             Page.ClientScript.RegisterStartupScript(Page.ClientScript.GetType(), "myscript", "<script  type='text/javascript'>ReturnPageValue();</script>");         }         /// <summary>         /// 连接到Excel         /// </summary>         /// <param name="filepath">文件路径</param>         /// <param name="sheetname">sheet名字</param>         /// <returns></returns>         public DataSet ExcelDataSource(string filepath, string sheetname)         {             _strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filepath +                        ";Extended Properties='Excel 12.0;HDR=YES'";             new OleDbConnection(_strConn);             var oada = new OleDbDataAdapter("select * from [" + sheetname + "]", _strConn);             var ds = new DataSet();             oada.Fill(ds);             return ds;         }         /// <summary>         /// 获得Excel中的所有sheetname         /// </summary>         /// <param name="filepath">文件路径</param>         /// <returns></returns>         public ArrayList ExcelSheetName(string filepath)         {             _strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filepath +                        ";Extended Properties='Excel 12.0;HDR=YES'";             var al = new ArrayList();             var conn = new OleDbConnection(_strConn);             conn.Open();             DataTable sheetNames = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,                 new object[] { null, null, null, "TABLE" });             conn.Close();             if (sheetNames != null)                 foreach (DataRow dr in sheetNames.Rows)                 {                     al.Add(dr[2]);                 }             return al;         }     } }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部