/// <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. pycharm格式化python代码快捷键Ctrl+Alt+L失效

    突然发现按Ctr+Alt+L格式化python失效了,下午时候还好好的.看网上得说法是因为开着的其他软件里用了全局快捷键Ctr+Alt+L,我的是因为被网易云音乐占用了,所以在网易云音乐里把这个快捷键 ...

  2. js转换成字符串

    有两种方法: 1.对于boolean, number, string类型,可调用toString()方法 2.用String(var)方法 其中,第二种方法使用范围更广,可将没有toString()方 ...

  3. redis与mysql一致性方案解析

    一 前言 首先,缓存由于其高并发和高性能的特性,已经在项目中被广泛使用.在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作 但是在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存 ...

  4. PHP应该学什么,如何学好PHP

    http://blog.sina.com.cn/s/blog_76bdabf70101azl4.html(注:原文来自传智播客) 本文转自http://blog.sina.com.cn/s/blog_ ...

  5. shutdown - 关闭系统

    总览 SYNOPSIS /sbin/shutdown [-t sec] [-arkhncfF] time [warning-message] 描述 DESCRIPTION shutdown 以一种安全 ...

  6. Rsync备份服务实战

    目录 Rsync备份服务实战 一.Rsync 二.rsync的应用场景 1.Rync的数据同步模式 2.rsync的三种模式 三.rsync配置服务端客户端 四.rsync实战 实战一 报错解决方法: ...

  7. 有趣的taskset命令,使进程再指定CPU上运行

    前言 taskset命令,用于进程的CPU调优,可以把某进程,指定再某CPU内工作. 如还不明白,可以参考此文 http://www.361way.com/linux-context-switch/5 ...

  8. npm启动报错

    npm 启动报错  event.js 160 报错原因: 端口号被占用 解决方法: 1.重新定义一个端口号. 2.任务管理器关掉node进程,重新运行npm.

  9. 监控服务(keepalived,httpd)

    #!/bin/bashpidof httpdif [ $? -eq 0 ];then echo "httpd is ok"else echo "httpd is not ...

  10. Vue学习笔记【33】——nrm的安装使用

    作用:提供了一些最常用的NPM包镜像地址,能够让我们快速的切换安装包时候的服务器地址: 什么是镜像:原来包刚一开始是只存在于国外的NPM服务器,但是由于网络原因,经常访问不到,这时候,我们可以在国内, ...