1、前台的表单:

<form enctype="multipart/form-data" method="post" id="inportFile" name="inportFile"><input type="file" name="excelfile"  id="excelfile"/></form>

2、数据打包

var postData = new FormData($("#inportFile")[0]);

3、ajax上传 (使用:$.postUploadAjax()) 

封装后的代码

postUploadAjax: function (url, postData, callBackSuccessFunc, callBackErrorFunc) {
$.ajax({
url: url + "&r=" + Math.random(),
data: postData,
type: "POST",
dataType: "json",
processData: false,
contentType: false,
success: function (jsonData) {
if (typeof callBackSuccessFunc === "function") {
callBackSuccessFunc(jsonData);
}
},
error: function (e) {
if (typeof callBackErrorFunc === "function") {
callBackErrorFunc(e);
}
}
});
},

5、c#代码 【导入部分】(引用using Npoi.Core.HSSF.UserModel;)

    [HttpPost]
public ActionResult ImportPost(IFormFile excelfile)
{
var result = new AjaxResult();
result.State = AjaxState.SUCCESS;
result.Message = "导入成功!";
try
{
var errorList = new List<string>();
string path = AppDomain.CurrentDomain.BaseDirectory + "\\temp";
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
} string fileName = $"{Guid.NewGuid()}.xlsx";
var fullPath = path + "\\" + fileName;
var businessid = WebHelper.GetQueryInt("businessid"); SelectRule selectRule = new SelectRule("V_APP_BUSINESS_MODEL_DETAIL", "IS_HIDE", false);
selectRule.AddColumnWhere("DISABLED", false);
selectRule.AddColumnWhere("BUSINESS_ID", businessid);
selectRule.OrderBy = "order by ORDER_BY asc ";
List<APP_BUSINESS_MODEL_DETAILModel> list = _service.GSF.GetDataTable(selectRule).ToListModel<APP_BUSINESS_MODEL_DETAILModel>(); FileInfo file = new FileInfo(Path.Combine(path, fileName));
using (FileStream fss = new FileStream(file.ToString(), FileMode.Create))
{
excelfile.CopyTo(fss);
fss.Flush();
}
IWorkbook wk = null;
string extension = System.IO.Path.GetExtension(fullPath); FileStream fs = new FileStream(fullPath, FileMode.Open);
if (extension.Equals(".xls"))
{
//把xls文件中的数据写入wk中
wk = new HSSFWorkbook(fs);
}
else
{
//把xlsx文件中的数据写入wk中
wk = new XSSFWorkbook(fs);
} fs.Close();
//读取当前表数据
ISheet sheet = wk.GetSheetAt(0);
IRow row = sheet.GetRow(0); //读取当前行数据
string strJsonArrary = "";
for (int i = 1; i <= sheet.LastRowNum; i++)
{
row = sheet.GetRow(i); //读取当前行数据
if (row != null)
{
string strJson="";
//LastCellNum 是当前行的总列数
for (int j = 0; j < row.LastCellNum; j++)
{
//读取该行的第j列数据
string key = sheet.GetRow(0).GetCell(j).ToString();
var model = list.Find(x => x.COLUMN_NAME == key);
string value = row.GetCell(j).ToString();
var keyValue = GetJson(model, value);
if (keyValue != "")
{
strJson += keyValue;
} }
if (strJson != "")
{
strJson ="{"+strJson.Substring(0, strJson.Length - 1)+"},";
strJsonArrary += strJson;
}
}
}
strJsonArrary = "["+strJsonArrary.Substring(0, strJsonArrary.Length - 1) + "]";
result.Data = JArray.Parse(strJsonArrary);
}
catch (Exception e)
{
result.State = AjaxState.ERROR;
result.Message = e.Message;
} return Json(result);
}

  

6、导出部分(Excel)

        public ActionResult DownTemplet(int business_id,string  tableName)
{
SelectRule selectRule = new SelectRule("V_APP_BUSINESS_MODEL_DETAIL", "IS_HIDE", false);
selectRule.AddColumnWhere("DISABLED", false);
selectRule.AddColumnWhere("BUSINESS_ID", business_id);
selectRule.OrderBy = "order by ORDER_BY asc ";
List<APP_BUSINESS_MODEL_DETAILModel> list = _service.GSF.GetDataTable(selectRule).ToListModel<APP_BUSINESS_MODEL_DETAILModel>(); IWorkbook workbook = new XSSFWorkbook();
ISheet sheet = workbook.CreateSheet(tableName);
IRow headRow = sheet.CreateRow();
headRow.Height = ;
for (int i = ; i < list.Count; i++)
{
ICell cell = headRow.CreateCell(i);
cell.SetCellValue(GetTitle(list[i].COLUMN_NAME));
}
var stream = new NPOIMemoryStream();
workbook.Write(stream);
stream.Flush();
stream.Position = ;
return File(stream, "application/ms-excel", string.Format("{0}.xlsx", tableName+"_模板"));
}

Net.Core导入EXCel文件里的数据的更多相关文章

  1. java后端导入excel模板和导入excel文件去读数据

    模板转载地址:https://www.cnblogs.com/zhangyangtao/p/9802948.html 直接上代码(我是基于ssm写的demo,导入文件目前只能读取.xls后缀的exce ...

  2. 如何在数据库中导入excel文件内的数据

    如何在数据库中轻松导入excel格式的文件 1)打开sql server,找到要导入数据的数据库,右键>>任务>>导入数据 2)按照图示选择要导入的excel 3)选择导入到哪 ...

  3. JavaScript日历控件开发 C# 读取 appconfig文件配置数据库连接字符串,和配置文件 List<T>.ForEach 调用异步方法的意外 ef 增加或者更新的习惯思维 asp.net core导入excel 一个二级联动

    JavaScript日历控件开发   概述 在开篇之前,先附上日历的代码地址和演示地址,代码是本文要分析的代码,演示效果是本文要实现的效果代码地址:https://github.com/aspwebc ...

  4. PLSQL导入Excel文件预览不到数据行问题

    今天,从Excel导入Oracle一些数据,在导入的过程中,遇到一个问题,Excel里面有好几万条数据,但是通过PLSQL导入向导导入Excel文件之后,在PLSQL里却预览不到数据行,只能看见标题行 ...

  5. Asp.Net Core 导入Excel数据到Sqlite数据库并重新导出到Excel

    Asp.Net Core 导入Excel数据到Sqlite数据库并重新导出到Excel 在博文"在Asp.Net Core 使用 Sqlite 数据库"中创建了ASP.NET Co ...

  6. springMVC(5)---导入excel文件数据到数据库

    springMVC(5)---导入excel文件数据到数据库 上一篇文章写了从数据库导出数据到excel文件,这篇文章悄悄相反,写的是导入excel文件数据到数据库.上一篇链接:springMVC(4 ...

  7. excel数据 入库mysql 和 mysql数据 导入excel文件

    1.excel数据入库mysql 首先准备excel文件, 标红的地方需要留意,一个是字段名所在行,一个表名对应页: 然后私用mysql工具 navicat, 选择数据库,然后导入文件, 选中相应ex ...

  8. [Python]将Excel文件中的数据导入MySQL

    Github Link 需求 现有2000+文件夹,每个文件夹下有若干excel文件,现在要将这些excel文件中的数据导入mysql. 每个excel文件的第一行是无效数据. 除了excel文件中已 ...

  9. 基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能

    思路: 1.首先,页面前端,上传附件,提交给后台,并带一个随机性的参数(可以用时间戳): 2.后端接收附件,做一系列的逻辑处理,无误后,将对应的文件存储在上传的目录下: 3.然后前端,上传附件成功后, ...

随机推荐

  1. 如何让 PADS Layout 识别到板框

    如何让 PADS Layout 识别到板框 在很久很久以前 PADS Laout 还是 PowerPCB 的时候,铺铜是不认识板框的. 当有铺铜时必须复制一份板框再设置为铺铜才可以. 但到了 PADS ...

  2. OracleParameter中参数名必须是DB中已有字段:【 ORA-01745: 无效的主机/绑定变量名】

    错误例子: 错误原因:查询的变量是自己随便命名的,不是数据库表中已有的字段, 因此,在进行OracleParameter(":rownum",10)时,在数据库中无法自动进行字段匹 ...

  3. HDU5692(dfs序+线段树)

    Snacks Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submis ...

  4. c语言-构建一个静态二叉树

    第一.树的构建 定义树结构 struct BTNode { char data; struct BTNode* pLChild; struct BTNode* pRChild; }; 静态方式创建一个 ...

  5. Windows_Server_2008远程桌面多用户登陆的配置方法

    开启远程桌面后,Windows Vista(或Windows 2008)下默认只支持一个administrator用户登陆,一个登录后另一个就被踢掉了,下面提供允许同一个用户名同时多个用户登录的配置方 ...

  6. appium python版api

    打印上下文 driver.contexts 打印当前上下文 driver.context driver.current_context 切换上下文 driver.switch_to.context(' ...

  7. 五颜六色的记事本 Notepad2.cn

    这是一款五颜六色的记事本,支持同时五种颜色的标签录入,可随意切换. 考虑到使用者的用眼舒适度,特意采用颜色对比明显并且色调柔和的配色方案,选择通用的微软雅黑字体作为编辑字体,字体工整便于识别. 针对使 ...

  8. eclipse下搭建Drools规则引擎环境

    插件下载地址:http://download.jboss.org/drools/release/ 1.点开对应的版本文件,选择标红的两个压缩包下载,其他的如有需要也可以自行选择: 2.将下载的压缩包解 ...

  9. Firemonkey Android IOS 图标

    图标很多

  10. SSH简单搭建

    本项目使用Struts2+spring3+hibernate3: 第一步:引入jar包,具体需要哪些包根据实际情况加入.注意:把jar包导入后需要对所有包Add to Build Path;然后对工程 ...