项目中经常会用到把excel的文件内容导入到数据库中的,刚刚花了点时间,做了个例子,基本上能实现导入Excel后显示的功能吧,导入的excel文件得是xls,即是2003的. 
    代码思路如下:要读取的excel文件必得得是在本地硬盘,所以一般来说都是让远程用户选择自己硬盘上的Excel文件,然后把用户选择的文件上传到本地服务器上,再在本地服务器上进行操作.我把界面后置代码重要部分贴出来,大家自己慢慢看吧,都有注释了.

  1. // 上传按钮
  2. protected void btnUp_Click(object sender, EventArgs e)
  3. {
  4. bool b = Upload(fuExcel);  // 上传excel文件
  5. if (!b)
  6. {
  7. return;
  8. }
  9. string name = fuExcel.FileName;
  10. string filepath = Server.MapPath("~/upload/") + name;
  11. DataSet ds = ExcelDataSource(filepath, ExcelSheetName(filepath)[0].ToString());
  12. GridView1.DataSource = ds;
  13. GridView1.DataBind();
  14. }
  15. //上传文件方法
  16. private bool Upload(FileUpload myFileUpload)
  17. {
  18. bool flag = false;
  19. //是否允许上载
  20. bool fileAllow = false;
  21. //设定允许上载的扩展文件名类型
  22. string[] allowExtensions = { ".xls" };
  23. //取得网站根目录路径
  24. string path = HttpContext.Current.Request.MapPath("~/upload/");
  25. //检查是否有文件案
  26. if (myFileUpload.HasFile)
  27. {
  28. //取得上传文件之扩展文件名,并转换成小写字母
  29. string fileExtension = System.IO.Path.GetExtension(myFileUpload.FileName).ToLower();
  30. //检查扩展文件名是否符合限定类型
  31. for (int i = 0; i < allowExtensions.Length; i++)
  32. {
  33. if (fileExtension == allowExtensions[i])
  34. {
  35. fileAllow = true;
  36. }
  37. }
  38. if (fileAllow)
  39. {
  40. try
  41. {
  42. //存储文件到文件夹
  43. myFileUpload.SaveAs(path + myFileUpload.FileName);
  44. lblMes.Text = "文件导入成功";
  45. flag = true;
  46. }
  47. catch (Exception ex)
  48. {
  49. lblMes.Text += ex.Message;
  50. flag = false;
  51. }
  52. }
  53. else
  54. {
  55. lblMes.Text = "不允许上载:" + myFileUpload.PostedFile.FileName + ",只能上传xls的文件,请检查!";
  56. flag = false;
  57. }
  58. }
  59. else
  60. {
  61. lblMes.Text = "请选择要导入的excel文件!";
  62. flag = false;
  63. }
  64. return flag;
  65. }
  66. //该方法实现从Excel中导出数据到DataSet中,其中filepath为Excel文件的绝对路径, sheetname为excel文件中的表名
  67. public DataSet ExcelDataSource(string filepath, string sheetname)
  68. {
  69. string strConn;
  70. strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties=Excel 8.0;";
  71. OleDbConnection conn = new OleDbConnection(strConn);
  72. OleDbDataAdapter oada = new OleDbDataAdapter("select * from [" + sheetname + "]", strConn);
  73. DataSet ds = new DataSet();
  74. oada.Fill(ds);
  75. conn.Close();
  76. return ds;
  77. }
  78. //获得Excel中的所有sheetname。
  79. public ArrayList ExcelSheetName(string filepath)
  80. {
  81. ArrayList al = new ArrayList();
  82. string strConn;
  83. strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties=Excel 8.0;";
  84. OleDbConnection conn = new OleDbConnection(strConn);
  85. conn.Open();
  86. DataTable sheetNames = conn.GetOleDbSchemaTable
  87. (System.Data.OleDb.OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
  88. conn.Close();
  89. foreach (DataRow dr in sheetNames.Rows)
  90. {
  91. al.Add(dr[2]);
  92. }
  93. return al;
  94. }

要注意的是我们要一开始就在网站根目录下建立upload文件夹,而且要把他的权限设置为可读可写的?这个权限的问题搞得头大,不知道到底应该怎么搞的,XP系统下新建立的文件夹好像都是只读的,我右键属性把只读去掉,结果再次查看的时候还是只读,不过好像发现对程序没有什么意思,上传完excel文件后还是可以读取查看的.

ASP.NET中读取excel内容并显示的更多相关文章

  1. asp.net中导出Excel的方法

    一.asp.net中导出Excel的方法: 本文转载 在asp.net中导出Excel有两种方法,一种是将导出的文件存放在服务器某个文件夹下面,然后将文件地址输出在浏览器上:一种是将文件直接将文件输出 ...

  2. C# 读取Excel内容

    一.方法 1.OleD方法实现该功能. 2.本次随笔内容只包含读取Excel内容,并另存为. 二.代码 (1)找到文档代码 OpenFileDialog openFile = new OpenFile ...

  3. Unity用Excel.dll简单读取Excel内容

    Unity用Excel.dll简单读取Excel内容 需要Excel.dll 需要如下三个命名空间 using System.IO; using Excel; using System.Data; 1 ...

  4. R中读取EXCEL 数据的方法

    最近初学R语言,在R语言读入EXCEL数据格式文件的问题上遇到了困难,经过在网上搜索解决了这一问题,下面归纳几种方法,供大家分享: 第一:R中读取excel文件中的数据的路径: 假定在您的电脑有一个e ...

  5. php中读取文件内容的几种方法。(file_get_contents:将文件内容读入一个字符串)

    php中读取文件内容的几种方法.(file_get_contents:将文件内容读入一个字符串) 一.总结 php中读取文件内容的几种方法(file_get_contents:将文件内容读入一个字符串 ...

  6. EasyExcel 轻松灵活读取Excel内容

    写在前面 Java 后端程序员应该会遇到读取 Excel 信息到 DB 等相关需求,脑海中可能突然间想起 Apache POI 这个技术解决方案,但是当 Excel 的数据量非常大的时候,你也许发现, ...

  7. POI读取Excel内容格式化

    在用POI读取Excel内容时,经常会遇到数据格式化的问题. 比如:数字12365会变为12365.0;字符串数字123也会变为123.0,甚至会被变为科学计数法.另外日期格式化也是一个头疼的问题.其 ...

  8. 文件_ _android从资源文件中读取文件流并显示的方法

    ======== 1   android从资源文件中读取文件流并显示的方法. 在android中,假如有的文本文件,比如TXT放在raw下,要直接读取出来,放到屏幕中显示,可以这样: private ...

  9. ASP.net中导出Excel的简单方法介绍

    下面介绍一种ASP.net中导出Excel的简单方法 先上代码:前台代码如下(这是自己项目里面写的一点代码先贴出来吧) <div id="export" runat=&quo ...

随机推荐

  1. 委托、匿名函数与Lambda表达式初步

    (以下内容主要来自<C#本质论第三版>第十二章委托和Lambda表达式) 一.委托续 上上周五看了看委托,初步明白了其是个什么,如何定义并调用.上周五准备看Lambda表达式,结果发现C# ...

  2. [terry笔记]物化视图 materialized view基础学习

    一.物化视图定义摘录:     物化视图是包括一个查询结果的数据库对像(由系统实现定期刷新数据),物化视图不是在使用时才读取,而是预先计算并保存表连接或聚集等耗时较多的操作结果,这样在查询时大大提高了 ...

  3. 从基础开始,从一个SQLHelper开始

    最开始考虑的问题有这三点: 1.Access和SQLServer都要能用. 2.尽量简单,清晰. 3.性能不出大问题. public class SQLHelp { #region 私有域 priva ...

  4. 我的WPF控件库——KAN.WPF.XCtrl(141105)

    自己开发的WPF控件库,只是初版,有扩展的Button,TextBox,Window.详细参见前几篇博文. WPF自定义控件(一)——Button:http://www.cnblogs.com/Qin ...

  5. 关于table元素的认识

    表格是网页上最常见的元素,但是,现在对很多刚入行的前端们那是谈table色变.那是为啥?这是表格的框架的简单.明了.在传统的网页中使用没有边框的表格来排版是非常流行.在web标准逐渐深入设计领域以后, ...

  6. 基于Elasticsearch进行地理检索,计算距离值

      实现步骤: 1.定义属性     [Serializable]     public class Coordinate     {         public double Lat { get; ...

  7. 数据持久化-Plist文件写入

    数据持久化,常见4种:归档,plist文件,sqlite,coreData.今天复习的是plist文件读写. // // ViewController.m // Test_Plist // // Cr ...

  8. HttpModule在Web.config的配置和动态配置

    学习笔记 ASP.Net处理Http Request时,使用Pipeline(管道)方式,由各个HttpModule对请求进行处理,然后到达 HttpHandler,HttpHandler处理完之后, ...

  9. Entity Framework SqlFunctions 教你如何在EF调用sqlserver方法的函数存根

    今天算是研究了一天的SqlFunctions,请教了几个群的牛人,居然发现大伙对这个都比较陌生, 有的甚至直指EF中是不能调用sqlserver里的方法的. 因为之前搞过linq to sql 里面的 ...

  10. Java实现Socket之WhoisClient

    Java实现Socket之WhoisClient 代码内容 从常用的whois服务器的43号端口得到对应域名的所有注册信息并显示出来 代码实现 /* WhoisClient.java */ impor ...