.NET MVC 中 Excel的读取操作
电脑版发表于:2019/11/29 16:36
经常看到新闻说熬夜可能会猝死,真是吓死我了,以后再也不看新闻了。个如你一般的人
今天我们分享的文章是关于mvc框架中对Excel表格的读取操作,它有两种方法:
方法1-->微软自带的方法
第一:我们需要导入命名空间,如下图:
第二:我们就可以读取自己创建目录下的Excel文件了,代码如下:
public ActionResult Index() { //读取excel文件内容 //方法1:微软自带的方法 string url = Server.MapPath("~/excel/students.xls"); string connstr = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\";Data Source=" + url; using (OleDbConnection conn = new OleDbConnection(connstr)) { conn.Open(); using (OleDbCommand command = new OleDbCommand("select * from [Sheet1$]", conn)) { OleDbDataReader reader = command.ExecuteReader(); while(reader.Read()) { //列 注意:excel表里每列数据的类型要一致 object number = reader[0]; object username = reader[1]; Response.Write(number + ":" + username + "<br/>"); } } } Response.End(); return View(); }
注释:我们定义自己文件路径-->定义连接的字符串connstr-->接下来就像操作数据库连接,获取数据原理一致了.
注意:我们在查询表时,当前excel表内的表名(Sheet1),需要用[]括起,末尾还需要$结尾.这是微软查询的格式.
方法2-->利用插件和文件流进行读取操作
第一:我们先在程序的引用出导入插件NPOI.dll,然后导入命名空间,如下图
第二:通过文件流打开路径下的excel文件,进行读取,代码如下:
public ActionResult Index() { ////读取excel文件 ////方法2 -->利用插件和文件流 string url = Server.MapPath("~/excel/students.xls"); FileStream fileStream = new FileStream(url, FileMode.Open); //通过文件流打开excel表格 HSSFWorkbook workbook = new HSSFWorkbook(fileStream); //读取某一张表 HSSFSheet sheet = workbook.GetSheet("Sheet1") as HSSFSheet; for (int i = 0; i < sheet.LastRowNum; i++) { HSSFRow row = sheet.GetRow(i) as HSSFRow; string number = ""; //判断值类型 if (row.GetCell(0).CellType == NPOI.SS.UserModel.CellType.STRING) { number = row.GetCell(0).StringCellValue; } if (row.GetCell(0).CellType == NPOI.SS.UserModel.CellType.NUMERIC) { number = row.GetCell(0).NumericCellValue + ""; } string name = row.GetCell(1).StringCellValue; Response.Write(number + ":" + name + "<br/>"); } return View(); }
注释:我们表格里的每一行数据的类型可能不一致,所以就需要判断一下,否则它会报类型不一致的错误.
前台我们用表单提交,访问地址,进行操作,代码如下:
<form method="post" action="~/npoi/read" enctype="multipart/form-data" style="width:300px;"> <input type="file" name="username" /> <input type="submit" value="上传导入" /> </form>
点击上传的效果如下:
好啦,今天的分享到这里了,希望此文章对你有帮助,同时也希望我们有一个记录知识点的好习惯.