asp.net(C#)如何读取Excel的文件的实例详解

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

下面看程序:
页面前台:

                              
  

登录后复制

后台代码:

//声明变量(属性) 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个方法

///  ///上传文件到临时目录中  ///  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); //上传  }  ///    ///读取xlsxlsx格式的Excel文件的方法    ///    ///待读取Excel的全路径    ///    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];    }    }    ///      ///读取csv格式的Excel文件的方法      ///      ///待读取Excel的全路径      ///      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;i


登录后复制

以上就是asp.net(C#)如何读取Excel的文件的实例详解的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2495037.html

(0)
上一篇 2025年3月5日 02:07:44
下一篇 2025年3月5日 02:08:02

AD推荐 黄金广告位招租... 更多推荐

发表回复

登录后才能评论