/// <summary>

/// 上传excel文件 并将文件数据导入到数据库

/// </summary>

/// <param name="file"></param>

/// <returns></returns>

[HttpPost]

public JsonResult UploadFile(HttpPostedFileBase file)

{

var fileName = file.FileName;

fileName = fileName.Replace(" ", "_").Replace("\\", "_").Replace("/", "_");

fileName = DateTime.Now.Ticks.ToString() + "_" + fileName;

var defaultPath = AppSettings["UploadFiles"];

if (String.IsNullOrWhiteSpace(defaultPath))

defaultPath = @"D:\RegTech\UploadFiles";

var excelUploadPath = Path.Combine(defaultPath, "UserCustomBlackList");

if (!Directory.Exists(excelUploadPath))

Directory.CreateDirectory(excelUploadPath);

// 将上传文件保存到服务器

var saveFilePath = Path.Combine(excelUploadPath, fileName);

file.SaveAs(saveFilePath);

List<UserCustomBlackList> excelResult = ReadExcelByCustomBlack(saveFilePath);

}

/// <summary>

/// 将上传的Excel数据导入到数据库中

/// </summary>

/// <param name="fileName"></param>

/// <param name="type"></param>

/// <returns></returns>

protected List<UserCustomBlackList> ReadExcelByCustomBlack(String fileName)

{

List<UserCustomBlackList> rtn = new List<UserCustomBlackList>();

FileInfo existingFile = new FileInfo(fileName);

try

{

using (FileStream fs = System.IO.File.OpenRead(fileName))

{

// 根据文件创建Excel WorkBook

IWorkbook wk = WorkbookFactory.Create(fs);

string extension = fileName.Substring(fileName.LastIndexOf(".")).ToString().ToLower();

// 获取第一个Sheet页

ISheet sheet = wk.GetSheetAt(0);

int rowIndex = 1;

for (int i = 1; i <= sheet.LastRowNum; i++)

{

UserCustomBlackList data = new UserCustomBlackList();

IRow row = sheet.GetRow(i);

if (row != null)

{

data.DisplayIndex = rowIndex++;

data.BlackContent = row.GetCell(0) == null ? String.Empty : row.GetCell(0).ToString();

}

if (!string.IsNullOrWhiteSpace(data.BlackContent))

rtn.Add(data);

}

return rtn;

}

}

catch (Exception ex)

{

LogUtility.Exception(ex,source: "客户端-ReadExcelByCustomBlack");

return null;

}

}

NOPI Excel 数据导入到数据库的更多相关文章

  1. 将Excel数据导入mysql数据库的几种方法

    将Excel数据导入mysql数据库的几种方法 “我的面试感悟”有奖征文大赛结果揭晓! 前几天需要将Excel表格中的数据导入到mysql数据库中,在网上查了半天,研究了半天,总结出以下几种方法,下面 ...

  2. 利用TOAD实现把EXCEL数据导入oracle数据库

    利用TOAD实现把EXCEL数据导入oracle数据库 工具:   Toad11.7z(百度搜索,直接下载) 1.将Excel文件中某些字段导入到Oracle数据库的对应表 连接想要导入的数据库 ,然 ...

  3. c#将Excel数据导入到数据库的实现代码

    这篇文章主要介绍了c#将Excel数据导入到数据库的实现代码,有需要的朋友可以参考一下 假如Excel中的数据如下: 数据库建表如下: 其中Id为自增字段: 代码: 代码如下: using Syste ...

  4. java实现EXCEL数据导入到数据库中的格式问题的解决

    之前作为项目甲方,加之java接触不多,在java web开发方面都是打下手的份. 对于EXCEL数据导入到数据库这个问题一直老是出现格式原因而导入失败也是未免惆怅,开发团队也是只说回去检查一下格式. ...

  5. 把Excel数据导入到数据库

    引入命名空间 using System.IO; using System.Data; using System.Data.OleDb; 引入命名空间 首先要把Excel上传到服务器 //上传Excel ...

  6. c#将Excel数据导入到数据库的实现代码(OleDb)

    sing System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web ...

  7. c#将Excel数据导入到数据库的实现代码(转载)

    假如Excel中的数据如下:     数据库建表如下:     其中Id为自增字段:      代码如下: using System; using System.Collections.Generic ...

  8. C# Excel数据导入到数据库

    http://www.jb51.net/article/44743.htm 假如Excel中的数据如下: 数据库建表如下: 其中Id为自增字段: 代码: 复制代码 代码如下: using System ...

  9. 批量Excel数据导入Oracle数据库

    由于一直基于Oracle数据库上做开发,因此常常会需要把大量的Excel数据导入到Oracle数据库中,其实如果从事SqlServer数据库的开发,那么思路也是一样的,本文主要介绍如何导入Excel数 ...

随机推荐

  1. 一文搞懂--Java中重写equals方法为什么要重写hashcode方法?

    Java中重写equals方法为什么要重写hashcode方法? 直接看下面的例子: 首先我们只重写equals()方法 public class Test { public static void ...

  2. 四、spring的JDBC模板和事务管理

    Spring的JDBC模板 Spring是JavaEE开发的一站式框架,对各种持久化技术都提供了简单的模板 ORM持久化技术 模板类 JDBC org.springframework.jdbc.cor ...

  3. db2重组所有表和更新表统计信息

    1.构建db2admin模式下的所有表的重组语句: select ' reorg table '||TABLE_NAME||';' from sysibm.tables where  TABLE_SC ...

  4. .Net编译环境x86,x64,anycpu的区别

    一.定义 x86: 将程序集编译为由兼容 x86 的 32 位公共语言运行库运行. x64: 将程序集编译为由支持 AMD64 或 EM64T 指令集的计算机上的 64 位公共语言运行库运行. any ...

  5. getCss函数

    var box=document.getElementById('box'); function getCss(curEle,attr){ var val=null; //去单位 var reg=/^ ...

  6. Docker两个问题的讨论

    docker中的container到底可不可以理解为一个操作系统? 先表明态度,我的理解是,NO. 主机级虚拟化 容器级虚拟化 容器通过Docker的守护进程(Docker daemon)来进行创建, ...

  7. day01 python初识、数据类型、流程控制

    今日内容大纲:1,计算机基础. cpu,内存,硬盘,操作系统.2,python的发展与应用.3,python的历史. 2008年python同时更新了两个版本 1,python2x python3x ...

  8. GitHub 创建工程

    创建本地代码仓库 打开Git Bash 首先配置自己的身份,这样在提交代码的时候就能知道是谁提交的 输入git config --global user.name 名字 git config --gl ...

  9. 第06章 AOP XML

    第06章 以XML方式配置切面 1.概述 除了使用AspectJ注解声明切面,Spring也支持在bean配置文件中声明切面.这种声明是通过aop名称空间中的XML元素完成的. 正常情况下,基于注解的 ...

  10. JVM内存模型及GC回收算法

    该篇博客主要对JVM内存模型以及GC回收算法以自己的理解和认识做以记录. 内存模型 GC垃圾回收 1.内存模型 从上图可以看出,JVM分为 方法区,虚拟机栈,本地方法栈,堆,计数器 5个区域.其中最为 ...