Net.Core导入EXCel文件里的数据
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文件里的数据的更多相关文章
- java后端导入excel模板和导入excel文件去读数据
模板转载地址:https://www.cnblogs.com/zhangyangtao/p/9802948.html 直接上代码(我是基于ssm写的demo,导入文件目前只能读取.xls后缀的exce ...
- 如何在数据库中导入excel文件内的数据
如何在数据库中轻松导入excel格式的文件 1)打开sql server,找到要导入数据的数据库,右键>>任务>>导入数据 2)按照图示选择要导入的excel 3)选择导入到哪 ...
- JavaScript日历控件开发 C# 读取 appconfig文件配置数据库连接字符串,和配置文件 List<T>.ForEach 调用异步方法的意外 ef 增加或者更新的习惯思维 asp.net core导入excel 一个二级联动
JavaScript日历控件开发 概述 在开篇之前,先附上日历的代码地址和演示地址,代码是本文要分析的代码,演示效果是本文要实现的效果代码地址:https://github.com/aspwebc ...
- PLSQL导入Excel文件预览不到数据行问题
今天,从Excel导入Oracle一些数据,在导入的过程中,遇到一个问题,Excel里面有好几万条数据,但是通过PLSQL导入向导导入Excel文件之后,在PLSQL里却预览不到数据行,只能看见标题行 ...
- Asp.Net Core 导入Excel数据到Sqlite数据库并重新导出到Excel
Asp.Net Core 导入Excel数据到Sqlite数据库并重新导出到Excel 在博文"在Asp.Net Core 使用 Sqlite 数据库"中创建了ASP.NET Co ...
- springMVC(5)---导入excel文件数据到数据库
springMVC(5)---导入excel文件数据到数据库 上一篇文章写了从数据库导出数据到excel文件,这篇文章悄悄相反,写的是导入excel文件数据到数据库.上一篇链接:springMVC(4 ...
- excel数据 入库mysql 和 mysql数据 导入excel文件
1.excel数据入库mysql 首先准备excel文件, 标红的地方需要留意,一个是字段名所在行,一个表名对应页: 然后私用mysql工具 navicat, 选择数据库,然后导入文件, 选中相应ex ...
- [Python]将Excel文件中的数据导入MySQL
Github Link 需求 现有2000+文件夹,每个文件夹下有若干excel文件,现在要将这些excel文件中的数据导入mysql. 每个excel文件的第一行是无效数据. 除了excel文件中已 ...
- 基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能
思路: 1.首先,页面前端,上传附件,提交给后台,并带一个随机性的参数(可以用时间戳): 2.后端接收附件,做一系列的逻辑处理,无误后,将对应的文件存储在上传的目录下: 3.然后前端,上传附件成功后, ...
随机推荐
- Windows SID理解
Windows安全性要依赖于几个基本元素.:访问令牌.SID.安全描述符.访问控制列表.密码. 访问令牌:访问令牌在本质上定义了两 上“P”:Permissions(权限)和Privilege(特权) ...
- EMIPLIB简介
EMIPLIB(http://research.edm.uhasselt.be/emiplib)的全称是'EDM Media over IP libray' .EDM是Hasselt Universi ...
- SQL 用;with 由所有的子节点查询到树结构中所有父节点
1.所有的子节点查询到树结构中所有父节点 RETURNS @Tree Table(PID )) as begin --DECLARE @ID VARCHAR() --SET @ID = ' ;with ...
- phonegap 解决https访问问题
ios报错 在AppDelegate.m文件在最后加入(在@end后面加空行): @implementation NSURLRequest(DataController) + (BOOL)allows ...
- Android 4学习(5):概述 - Android应用程序的生命周期
参考:<Professional Android 4 Application Development> Android应用程序生命周期 Android应用程序无法控制自己的生命周期,因此它 ...
- vue开发后台管理系统小结
最近工作需要用vue开发了后台管理系统,由于是第一次开发后台管理系统,中间也遇到了一些坑,想在这里做个总结,也算是对于自己工作的一个肯定.我们金融性质的网站所以就不将代码贴出来哈 一.项目概述 首先工 ...
- 探究QA职能
测试人员一般是被外界普遍认为是QC,即对产品的质量进行检测,找出质量问题并配合相关人员解决问题,从而管控产品质量,说通俗点就是帮开发找漏洞,给开发擦屁股:如果线上出现bug,就是你没有测试完整,最累的 ...
- C语言基础问题总结
Double 类型用 %f 接受会产生错误,应该用%lf C语言中SIN,COS的参数为弧度,角度应先转换为弧度才能计算,否则出错 三角形的判断条件,任意两边长度和大于第三边 闰年判断条件整百年为40 ...
- 爬取google的搜索结果并保存
demo: #coding:utf- import requests from bs4 import BeautifulSoup import bs4 import re def getHTMLTex ...
- 面试题: java面试经历 已看1 抢红包如何分配每个人抢到的钱 有用 难点的面试题
2018.03.09 深圳乐唯科技 我看了下感觉这公司貌似挺不错的,面试官人也挺好的,氛围应该很不错,可惜我实力不足,唉,接续努力,下面把面试中印象较深的三个问题写一下. 面试问题1:数据库删除重复数 ...