tnblog
首页
视频
资源
登录

.NET MVC 中 Excel的读取操作

6233人阅读 2019/11/29 16:36 总访问:400359 评论:0 收藏:0 手机
分类: .NET MVC

经常看到新闻说熬夜可能会猝死,真是吓死我了,以后再也不看新闻了。个如你一般的人



今天我们分享的文章是关于mvc框架中对Excel表格的读取操作,它有两种方法:


方法1-->微软自带的方法

 第一:我们需要导入命名空间,如下图:

  

第二:我们就可以读取自己创建目录下的Excel文件了,代码如下:

  

  1. public ActionResult Index()
  2.         {
  3.             //读取excel文件内容
  4.             //方法1:微软自带的方法
  5.             string url = Server.MapPath("~/excel/students.xls");
  6.             string connstr = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\";Data Source=" + url;
  7.                                                  
  8.             using (OleDbConnection conn = new OleDbConnection(connstr))
  9.             {
  10.                 conn.Open();
  11.                 using (OleDbCommand command = new OleDbCommand("select * from [Sheet1$]", conn))
  12.                 {
  13.                     OleDbDataReader reader = command.ExecuteReader();
  14.                     while(reader.Read())
  15.                     {
  16.                         //列   注意:excel表里每列数据的类型要一致
  17.                         object number = reader[0];
  18.                         object username = reader[1];
  19.                         Response.Write(number + ":" + username + "<br/>");
  20.                     }
  21.                 }
  22.             }
  23.             Response.End();
  24.             return View();
  25.         }

  注释:我们定义自己文件路径-->定义连接的字符串connstr-->接下来就像操作数据库连接,获取数据原理一致了.

  注意:我们在查询表时,当前excel表内的表名(Sheet1),需要用[]括起,末尾还需要$结尾.这是微软查询的格式.

  

方法2-->利用插件和文件流进行读取操作

   第一:我们先在程序的引用出导入插件NPOI.dll,然后导入命名空间,如下图

   

第二:通过文件流打开路径下的excel文件,进行读取,代码如下:

  

  1. public ActionResult Index()
  2.         {
  3.             ////读取excel文件
  4.             ////方法2   -->利用插件和文件流
  5.             string url = Server.MapPath("~/excel/students.xls");
  6.             FileStream fileStream = new FileStream(url, FileMode.Open);
  7.             //通过文件流打开excel表格
  8.             HSSFWorkbook workbook = new HSSFWorkbook(fileStream);
  9.             //读取某一张表
  10.             HSSFSheet sheet = workbook.GetSheet("Sheet1"as HSSFSheet;
  11.             for (int i = 0; i < sheet.LastRowNum; i++)
  12.             {
  13.                 HSSFRow row = sheet.GetRow(i) as HSSFRow;
  14.                 string number = "";
  15.                 //判断值类型
  16.                 if (row.GetCell(0).CellType == NPOI.SS.UserModel.CellType.STRING)
  17.                 {
  18.                     number = row.GetCell(0).StringCellValue;
  19.                 }
  20.                 if (row.GetCell(0).CellType == NPOI.SS.UserModel.CellType.NUMERIC)
  21.                 {
  22.                     number = row.GetCell(0).NumericCellValue + "";
  23.                 }
  24.                 string name = row.GetCell(1).StringCellValue;
  25.                 Response.Write(number + ":" + name + "<br/>");
  26.             }
  27.             return View();
  28.         }

注释:我们表格里的每一行数据的类型可能不一致,所以就需要判断一下,否则它会报类型不一致的错误.


  前台我们用表单提交,访问地址,进行操作,代码如下:

  1. <form method="post" action="~/npoi/read" enctype="multipart/form-data" style="width:300px;">
  2.     <input type="file" name="username" />
  3.     <input type="submit" value="上传导入" />
  4. </form>

  点击上传的效果如下:

   

好啦,今天的分享到这里了,希望此文章对你有帮助,同时也希望我们有一个记录知识点的好习惯.


评价

.net MVC分部页,.net core分部页

.net分部页的三种方式第一种:@Html.Partial(&quot;_分部页&quot;)第二种:@{ Html.RenderPartial(&quot;分部页&quot;);}...

.net MVC 登录后跳回原来的页面

把当前连接传递到登录界面,然后登录后根据那个连接跳转回来就好跳转前可以使用Request.Url获取当前页面的地址:&lt;ahref=...

asp.net MVC @helper用法

@helper可以在视图定义一个公共块,这样就可以实现代码的重复调用下面来一个很简单的例子:就是输出一个list的数据。实际项...

ASP.net MVC从请求到响应发生了什么

先就贴一张图哦在来一张

.net MVC 使用百度编辑器详细教程:(1)配置编辑器

一、什么是百度编辑器百度编辑器UEditor是由百度web前端研发部开发一款应用于网站的编辑器,具有轻量,可定制,注重用户体...

Asp.net MVC 利用(aspose+pdfobject.js) 实现在线预览office文档

Aspose.Total是Aspose公司旗下的最全的一套office文档管理方案,通过它,我们可以有计划地操纵一些商业中最流行的文件格式...

asp.net MVC 下载文件

方法1:publicvoidDownLoad() { stringfilePath=&quot;文件路径&quot;; using(FileStreamfs=newFileStream(filePath,Fil...

ASP.net MVC + WebUploader+BootStrap实现文件上传进度条显示

引入需要的资源文件:&lt;scriptsrc=&quot;~/Content/jquery-1.9.1.min.js&quot;&gt;&lt;/script&gt; &lt;linkhref=&quot;...

ASP.net MVC + WebUploader实现文件上传二:使用的一些问题

如何把文件选择按钮换成自己的因为WebUploader设置关联的上传id会有他的样式,有时候想换成自己的开始想的是添加自己的文件...

ASP.net MVC 模型验证

MVC自带有模型验证,它是通过System.ComponentModel.DataAnnotations命名空间完成。 我们要做的只是给Model类的各属性加上...

asp.net MVC过滤器

过滤器简介:面向切面的编程方式可以实现不改动原有逻辑的基础上添加自己的逻辑使用的时候添加一个配置即可,不想用的时候...

ASP.net MVC Controller接收ajax post方式发送过来的json对象或数组数据

1、将json数组或者json对象用JSON.stringify()方法序列化成字符串,再将字符串提交到后台。varstuarr=newArray();//创建一...

.net MVC json对象或者json对象数组的序列化和反序列化(一)

1、用JSON.stringify()将对象stuarr或者json数组stuarr序列化成字符串,然后提交给后台。$.post(&quot;/home/DoUpdate&quot...

.net MVC json对象或者json对象数组的序列化和反序列化(二)

1、用JSON.stringify()将对象stuarr或者json数组stuarr序列化成字符串,然后提交给后台。$.post(&quot;/home/DoUpdate&quot...

.net MVC lamdba实现left join

1、left join 用GroupJoin来实现,join的返回结果为一对一,GroupJoin返回结果为一对多,相当于集合中还有集合publicAction...

.net MVC EF框架Left Join的SelectMany原理

下列代码为实现Left join 查询数据库,如果在调用SelectMany方法之前已经ToList,返回之后就结束操作数据库了,SelectMany ...
你之所以觉得时间一年比一年过得快,是因为时间对你一年比一年重要。
排名
13
文章
64
粉丝
20
评论
30
MUI框架页面间的传值指针
XingDy姐 : 不错哦
MUI框架页面间的传值指针
剑轩 : 接口的真实地址可以用xx/yy什么的代替哦,真实地址还是隐藏一下好
.NET EF 用户按钮权限
YOU : 可以,在写文章的时候,有需要写代码的地方,可以选择编辑器上的代...
.NET EF 用户按钮权限
剑轩 : 哈哈哈哈,你这个追女生的逻辑
EF三种模式解析
剑轩 : 好文采!
重要sql语句和linq,lamdba分组条件查询语句
剑轩 : 开头那句诗句写得很好哇!
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术
军人天生就舍弃了战斗的意义!