视图中的代码:

          <div class="gcs-login-panel" style="height: 200px;"><div class="gcs-login-container"><input id="file" type="file" placeholder="请输入用户名" class="input" accept=".xlsx,.xls" /></div><div class="gcs-login-container"><span style="color:red">请选择扩展名为xlsx或者xls的文件</span></div><div class="gcs-login-container"><input id="submit" name="submit" type="button" value="开始上传" class="btn-login" /></div></div>

Js中的代码:

 $("#submit").on("click", function () {if ($("#file").val() == "" || $("#file").val() == null) {alert("请选择文件");return;}var formData = new FormData();var file = $("#file")[0].files[0];formData.append("files", file);$("#submit").val("正在转换...");//上传文件$.ajax({url: '/home/getDataFromExcel',type: "post",processData: false,contentType: false,data: formData,async: false,success: function (res) {res = JSON.parse(res);if (res.status == 0) {alert("获取数据成功");$("#submit").val("上传文件");window.location.href = "#";}else {alert("获取数据失败");}}});})

Controller中的代码:

/// <summary>/// 从Excel获取数据/// </summary>/// <param name="form"></param>/// <returns></returns>
public string GetDataFromExcel([FromForm]IFormCollection form) {try{IFormFileCollection files = form.Files;using (MemoryStream memoryStream = new MemoryStream()) {files[0].CopyToAsync(memoryStream);Workbook workBook = new Workbook(memoryStream);Cells cells = workBook.Worksheets[0].Cells;int maxDataRow = cells.MaxDataRow;int maxDataColumn = cells.MaxDataColumn;List<string> list = new List<string>();for (int i = 0; i <= maxDataColumn; i++){list.Add(cells[0, i].StringValue.Trim());}var data = "Data=[";StringBuilder sb = new StringBuilder();for (int i = 1; i <= maxDataRow; i++){sb.Append("{");for (int j = 1; j <= maxDataColumn; j++){if (j != maxDataColumn){sb.Append(list[j] + ":\"" + cells[i, j].StringValue.Trim() + "\",");}else{sb.Append(list[j] + ":\"" + cells[i, j].StringValue.Trim()+"\"");}}if (i != maxDataRow){sb.Append("},\r\n");}else{sb.Append("}\r\n");}}data += sb.ToString()+"]";FileInfo fileInfo = new FileInfo(_webHostEnvironment.WebRootPath + "\\static\\data\\data.js");if (fileInfo.Exists){fileInfo.Delete();}fileInfo.Create().Close();                    string strFileName = Path.Combine(_webHostEnvironment.WebRootPath, "static\\data", "data.js");using (FileStream fs = new FileStream(strFileName, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite)){using (StreamWriter sw = new StreamWriter(fs)){sw.Write(data);}}}}catch (Exception ex){return Newtonsoft.Json.JsonConvert.SerializeObject(new { status = 1,data=ex.Message });}return Newtonsoft.Json.JsonConvert.SerializeObject(new { status = 0,data="生成数据成功" });}

Asp.Net Core MVC 使用Aspose.Cells从Excel获取数据相关推荐

  1. ASP.NET Core MVC上传、导入、导出知多少

    前言 本君已成夜猫子,本节我们来讲讲ASP.NET Core MVC中的上传,这两天在研究批量导入功能,本节顺便简单搞搞导入.导出,等博主弄妥当了再来和大家一并分享. .NET Core MVC上传 ...

  2. asp.net使用Aspose.Cells实现excel预览

    在WEB项目中经常遇到excel文档在线预览的需求,基本的解决思路有以下几大类:excel文档转PDF.excel文档直接转html.后台读取excel数据返回给前端利用Excel效果的表格插件如(H ...

  3. 关于MVC与三层架构、个人总结网上杂七杂八得出的最终成果、asp.net (core) MVC、JavaWeb的MVC

    阅读本文必须明白的事情 首先需要明白的是不同语言实现的MVC与三层架构对应的层是不一样的!!! 拿.net来说,.net实现MVC与其他语言的MVC具体实现是不同的,asp.net MVC与 MVC ...

  4. ASP .NET Core MVC Entity Framework 旧书交易网站

    代码在GitHub仓库:zhang0peter/Old-Book-Shop-System: Old Book Shop System ASP .Net Core MVC MySQL e-commerc ...

  5. ASP.NET Core 入门教程 6、ASP.NET Core MVC 视图布局入门

    一.前言 1.本教程主要内容 ASP.NET Core MVC (Razor)视图母版页教程 ASP.NET Core MVC (Razor)带有Section的视图母版页教程 ASP.NET Cor ...

  6. 007.Adding a view to an ASP.NET Core MVC app -- 【在asp.net core mvc中添加视图】

    索引: 目录索引 Adding a view to an ASP.NET Core MVC app 在asp.net core mvc中添加视图 2017-3-4 7 分钟阅读时长 本文内容 1.Ch ...

  7. asp.net core mvc上传大文件解决方案

    asp.net core mvc上传大文件解决方案 参考文章: (1)asp.net core mvc上传大文件解决方案 (2)https://www.cnblogs.com/eggtwo/p/988 ...

  8. ASP.NET Core 入门教程 2、使用ASP.NET Core MVC框架构建Web应用

    原文:ASP.NET Core 入门教程 2.使用ASP.NET Core MVC框架构建Web应用 一.前言 1.本文主要内容 使用dotnet cli创建基于解决方案(sln+csproj)的项目 ...

  9. ASP.NET Core MVC – Caching Tag Helpers

    ASP.NET Core Tag Helpers系列目录,这是第二篇,共五篇: ASP.NET Core MVC – Tag Helpers 介绍 ASP.NET Core MVC – Caching ...

最新文章

  1. 优秀的 Java 项目代码都是如何分层的?
  2. 001_Spring概述
  3. 巴什博奕(Bash_Game)
  4. c语言 方法重载 冲定义,C++ 重载(overload)、重写(overrride)、重定义(redefine)
  5. Bash shell脚本练习(一)
  6. c++ mysql ctime_CTime::Format
  7. 讲一个让你们难过很久的故事吧?
  8. Excel比较两列的值
  9. win7 计算机设置命令,Win7设置开机启动项命令的方法
  10. 光纤配线柜如何选择,又该怎么安装?
  11. lucky前面加a还是an_冠词a、an和the在用法上有什么不一样的地方
  12. 让自己的底线一降再降,相当于没有底线
  13. 使用Matlab实现脉冲响应不变法
  14. 更靠近明媚阳光的日子里
  15. ABAP bgRFC 实例
  16. 小米4C直接解锁、刷入TWRP
  17. docker配置python环境_PyCharm使用Docker镜像搭建Python开发环境
  18. reposync提示Removing *.rpm, due to missing GPG key
  19. Python面试题 附 答案
  20. html中显示人民币符号

热门文章

  1. 新一轮涨价潮来袭!英飞凌、安森美、ST、安世等交期长达52周
  2. android—性能优化2—内存优化
  3. 52单片机课程设计——利用52单片机的智能窗帘设计论文+源码
  4. 华为笔记本电脑真香,包邮送一台!
  5. android图片涂鸦(标记)
  6. 树莓派各版本引脚及参数
  7. 极坐标解圆锥曲线三角形面积范围问题
  8. Pandas API参考
  9. 快码加编——代码生成神器
  10. python实现FFT,IFFT