• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    ASP.NET(C#)读取Excel的文件内容

    .xls格式       Office2003及以下版本
    .xlsx格式  Office2007 及以上版本
    .csv格式       以逗号分隔的字符串文本(可以将上述两种文件类型另存为此格式)   
    读取前两种格式和读取后一种格式会用两种不同的方法。

    下面看程序:
    页面前台:

    复制代码 代码如下:

    div>       %-- 文件上传控件  用于将要读取的文件上传 并通过此控件获取文件的信息--%>     
    asp:FileUpload ID="fileSelect" runat="server" />         
    %-- 点击此按钮执行读取方法--%>      
    asp:Button ID="btnRead" runat="server" Text="ReadStart" />
    /div>  

    后台代码:

    复制代码 代码如下:

     //声明变量(属性)
     string currFilePath = string.Empty; //待读取文件的全路径
     string currFileExtension = string.Empty;  //文件的扩展名

     //Page_Load事件 注册按钮单击事件
     protected void Page_Load(object sender,EventArgs e)
     {
         this.btnRead.Click += new EventHandler(btnRead_Click);
     }

     
     //按钮单击事件   //里面的3个方法将在下面给出
     protected void btnRead_Click(object sender,EventArgs e)
     {
         Upload();  //上传文件方法
         if(this.currFileExtension ==".xlsx" || this.currFileExtension ==".xls")
           {
                DataTable dt = ReadExcelToTable(currFilePath);  //读取Excel文件(.xls和.xlsx格式)
           }
           else if(this.currFileExtension == ".csv")
             {
                   DataTable dt = ReadExcelWidthStream(currFilePath);  //读取.csv格式文件
             }
     }

    下面列出按钮单击事件中的3个方法

    复制代码 代码如下:

    ///summary>
    ///上传文件到临时目录中
    ////ummary>
    private void Upload()
    {
    HttpPostedFile file = this.fileSelect.PostedFile;
    string fileName = file.FileName;
    string tempPath = System.IO.Path.GetTempPath(); //获取系统临时文件路径
    fileName = System.IO.Path.GetFileName(fileName); //获取文件名(不带路径)
    this.currFileExtension = System.IO.Path.GetExtension(fileName); //获取文件的扩展名
    this.currFilePath = tempPath + fileName; //获取上传后的文件路径 记录到前面声明的全局变量
    file.SaveAs(this.currFilePath); //上传
    }


    ///summary>
    ///读取xls\xlsx格式的Excel文件的方法
    ////ummary>
    ///param name="path">待读取Excel的全路径/param>
    ///returns>/returns>
    private DataTable ReadExcelToTable(string path)
    {
    //连接字符串
    string connstring = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties='Excel 8.0;HDR=NO;IMEX=1';"; // Office 07及以上版本 不能出现多余的空格 而且分号注意
    //string connstring = Provider=Microsoft.JET.OLEDB.4.0;Data Source=" + path + ";Extended Properties='Excel 8.0;HDR=NO;IMEX=1';"; //Office 07以下版本 因为本人用Office2010 所以没有用到这个连接字符串 可根据自己的情况选择 或者程序判断要用哪一个连接字符串
    using(OleDbConnection conn = new OleDbConnection(connstring))
    {
    conn.Open();
    DataTable sheetsName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,new object[]{null,null,null,"Table"}); //得到所有sheet的名字
    string firstSheetName = sheetsName.Rows[0][2].ToString(); //得到第一个sheet的名字
    string sql = string.Format("SELECT * FROM [{0}],firstSheetName); //查询字符串
    OleDbDataAdapter ada =new OleDbDataAdapter(sql,connstring);
    DataSet set = new DataSet();
    ada.Fill(set);
    return set.Tables[0];

    }
    }


    ///summary>
    ///读取csv格式的Excel文件的方法
    ////ummary>
    ///param name="path">待读取Excel的全路径/param>
    ///returns>/returns>
    private DataTable ReadExcelWithStream(string path)
    {
    DataTable dt = new DataTable();
    bool isDtHasColumn = false; //标记DataTable 是否已经生成了列
    StreamReader reader = new StreamReader(path,System.Text.Encoding.Default); //数据流
    while(!reader.EndOfStream)
    {
    string meaage = reader.ReadLine();
    string[] splitResult = message.Split(new char[]{','},StringSplitOption.None); //读取一行 以逗号分隔 存入数组
    DataRow row = dt.NewRow();
    for(int i = 0;isplitResult.Length;i++)
    {
    if(!isDtHasColumn) //如果还没有生成列
    {
    dt.Columns.Add("column" + i,typeof(string));
    }
    row[i] = splitResult[i];
    }
    dt.Rows.Add(row); //添加行
    isDtHasColumn = true; //读取第一行后 就标记已经存在列 再读取以后的行时,就不再生成列
    }
    return dt;
    }

     

    您可能感兴趣的文章:
    • C#读取Excel的三种方式以及比较分析
    • c#利用Excel直接读取数据到DataGridView
    • C#使用Aspose.Cells控件读取Excel
    • C#利用Openxml读取Excel数据实例
    • C#实现把txt文本数据快速读取到excel中
    • ADO.NET 读取EXCEL的实现代码((c#))
    • C#读取Excel并转化成XML的方法
    • C#窗体读取EXCEL并存入SQL数据库的方法
    • C#创建、读取和修改Excel的方法
    • Unity读取Excel文件转换XML格式文件
    上一篇:Ajax Control Toolkit BalloonPopup的使用实例及效果
    下一篇:C#基础之数据类型转换
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    ASP.NET(C#)读取Excel的文件内容 ASP.NET,读取,Excel,的,文件,