/// <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. linux基本命令的简单介绍

    基本命令 man:查看帮助信息 :一般系统命令太多,要记住这些命令是不可能的,man是一个联机帮助信息 man提供大量的帮助信息,一般分为以下4各部分 NAME:对命令的简单介绍 SYNOPSIS对命 ...

  2. ubuntu18.04 -- 创建第一个Django项目

    step1: 安装虚拟环境: sudo pip3 install virtualenv # 安装虚拟环境sudo pip3 install virtualenvwrapper # 安装虚拟环境扩展包# ...

  3. A new session could not be created. (Original error: Could not find a connected Android device.)

    1 终端执行adb   devices 查看知否看到设备 1 查看手机 的开发者 usb调试功能是否打卡 2 重启电脑,cmd 执行  adb devices  重新打开

  4. Linux xargs 命令

    xargs xargs 是给命令传递参数的一个过滤器,也是组合多个命令的一个工具. xargs 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据. xargs 也可 ...

  5. Spring boot与thymeleaf的集成

    # thymeleaf热部署 spring.thymeleaf.cache=false @Value("${spring.thymeleaf.cache}")          p ...

  6. python核心编程socket备忘

    服务器端: # Echo server program from socket import * from time import ctime HOST = '' # Symbolic name me ...

  7. Qt 显示网页的控件

    Qt5.6以下的版本,基于QtWebkit控件Qt5.6以上的MSVC版本,基于 Chromium 的浏览器引擎 Qt WebEngineQt5.6以上的mingw 版本,只能采用QAxWidget ...

  8. v-if-else 条件判断 是否插入元素指令

    <div id="app05"> <p v-if="OK">True的时候显示,否则不显示</p> <template ...

  9. vue常见面试题

    什么是 mvvm? MVVM 是 Model-View-ViewModel 的缩写.mvvm 是一种设计思想.Model 层代表数据模型,也可以在 Model 中定义数据修改和操作的业务逻辑:View ...

  10. 埋坑一: vue中子组件调用兄弟组件方法

    小计: 开发中遇到子组件需要调用兄弟组件中的方法,如下写个小demo记录下心得,如果你有好的方法,请到评论区域指教 父组件示例代码: 组件功能解析: 通过$emit获取子组件事件,通过$ref调用子组 ...