/// <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. HDU 3622 Bomb Game(2-sat)

    Bomb Game Time Limit: 10000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  2. 消息 245,级别 16,状态 1,第 1 行 在将 varchar 值 '2,8' 转换成数据类型 int 时失败。

    错误问题: 消息 245,级别 16,状态 1,第 1 行在将 varchar 值 '2,8' 转换成数据类型 int 时失败. ps: 这是在后台分配菜单权限这个功能时出现的问题 一,解决方法: 将 ...

  3. Centos设置自带中文输入法

    1.点击屏幕左上角的[系统应用程序]->[系统工具]->[设置] 2.在弹出的设置对话窗中选择Region&language 3.在弹出的[区域和语言]对话窗中,点击左下角“+”, ...

  4. 在Echarts区域的任何位置精准触发事件

    ​ 需求背景:点击Echarts区域跳转页面,跳转的区域不包括grid的坐标及标签,翻看了Echarts官网,实现触发事件之的on方法,但是此方法只能在鼠标点击某个图形上会触发,这样并不能实现需求.通 ...

  5. elasticsearch 嵌套对象之嵌套类型

    nested类型是一种特殊的对象object数据类型(specialised version of the object datatype ),允许对象数组彼此独立地进行索引和查询. 1. 对象数组如 ...

  6. Oracle update 两表及以上关联更新,出现多值情况,不是一对一更新

    为了方便起见,建立了以下简单模型,和构造了部分测试数据:在某个业务受理子系统BSS中, SQL 代码--客户资料表 create table customers ( customer_id numbe ...

  7. shell选项和参数

  8. Codeforces 1185G2 Playlist for Polycarp (hard version) 背包,暴力

    题意及思路:https://www.cnblogs.com/Als123/p/11061147.html 代码: #include <bits/stdc++.h> #define LL l ...

  9. Git--将已有的项目添加到github(转)

    转自:https://blog.csdn.net/north1989/article/details/53471439 1. 目标: 把本地已经存在的项目,推送到github服务端,实现共享. 2. ...

  10. github 配置ssh

    https://www.cnblogs.com/superGG1990/p/6844952.html