NOPI Excel 数据导入到数据库
/// <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;
}
}
最新文章
- C# 连接Oracle ,免安装客户端
- WPF的学习笔记(1) -- (积累自2016年5月1日 至 2016年6月1日)
- Visual Studio 2013 prerequisites
- apache2: Could not reliably determine the server&#39;s fully qualified domain name
- 使用AjaxFileUpload.js实现文件异步上�
- Java Final and Immutable
- centos 修改主机映射
- Java生产者消费者
- selenium中的xpath定位
- Python爬虫之12306-分析请求总概述
- 【小o地图Excel插件版】计算两点间驾车路径,获取途径道路、驾车距离、耗时等信息
- Netty:Channel 建立后消息发送失败
- 解决Ubuntu中vi命令的编辑模式下不能正常使用方向键和退格键的问题
- oracle 命令行
- Robotframework 3- 安装
- PHP中路径的相关配置
- 我的第一个Mybatis程序
- SQL Server 性能调优(方法论)【转】
- 更新Composer依赖报错处理Fatal error: Declaration of Fxp\Composer\AssetPlugin\Repository\AbstractAssetsRe
- iOS实录:GCD使用小结(一)