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. http协议及原理分析 1

    1:200与304的区别 浏览器第一次加载成功返回200状态,并会在浏览器的缓存中记录下 max-age 这个值.第二次发起服务器的访问时 会先看缓存中有没有要加载的资源 如果有 再去看有没有超出 m ...

  2. 执行.class文件

    java packageName.className即可 但是注意,如果是有包的,这段指令一定是packageName的上层目录(即bin目录)执行!

  3. bzoj 3992 [SDOI2015]序列统计——NTT(循环卷积&&快速幂)

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3992 有转移次数.模M余数.方案数三个值,一看就是系数的地方放一个值.指数的地方放一个值.做 ...

  4. CentOS7 yum安装mysql5.5/5.6并初始化

    https://blog.csdn.net/petrel2015/article/details/78822466 下载MySQL yum仓库文件 首先根据官网给出的建议,下载MySQL的仓库文件 h ...

  5. laravel DB::raw() DB::RAW()的用法

    laravel中的 DB::raw() 和DB::RAW()是同一种功能;用法如下 public function test() { $real = 66;]); $res = \ai\Models\ ...

  6. dijstra+输出路径总结

    #include<iostream> #include<math.h> #include<memory.h> using namespace std; #defin ...

  7. iOS下拉图片放大

    效果图 开始简单的代码过程 其实思路很简单 就是 让tableView偏移 一图片的高度,然后在把图片添加到tableView中,然后再监听didScrollView,在里面改变图片的frame - ...

  8. UML关系说明文档

    http://blog.csdn.net/suxinpingtao51/article/details/8011335/

  9. ARRINC424—MORA(GRID)格式

    每一整数经.纬度为一格,每格MORA值3位数字,表示百英尺.无法获知MORA值得网格一UNK表示. 经纬网格起始点坐标,每个网格从左下角开始计数,每经纬度一度切分一个网格.每行数据代表某一维度上往东或 ...

  10. ffmpeg: ‘UINT64_C’ was not declared in this scope (转)

    ffmpeg 默认是用C文件来编译的,如果某个CPP文件想引用ffmpeg中的某些函数或者头文件,有可能出现 ‘UINT64_C’ was not declared in this scope的错误 ...