NPOI 上传Excel功能(二)
3.上传文件,写入log
using DC.BE.Business.SYS;
using DC.BE.Entity.ERP;
using DC.BE.Entity.SAS;
using DC.BE.Entity.SYS;
using DC.Framework.Logging;
using DC.Framework.Logging.ELLAB;
using Excel;
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using DC.BE.Entity.Common;
using DC.Framework.Repository.Definition;
using System.Diagnostics;
using DC.Backend.Utility;
using DC.BE.Business.SYS.SYSBModel;
using DC.BE.Business.SAS;
using DC.BE.Entity.Security;
using DC.BE.BusinessImpl.Exceptions;
using DC.BE.BusinessImpl.SYS; namespace DC.Website.MVC5.Controllers.SYS.Base
{
public class BaseDataImportController : Controller
{
private readonly ITsysManagementBusiness _tsysManagementBusiness;
private static readonly ILogger Logger = LoggerFactory.GetLogger(typeof(BaseDataImportController).FullName);
private readonly ITsysStoreInfoBusiness _tsysStoreInfoBusiness;
private readonly ITsasManagementBusiness _tsasManagementBusiness;
private readonly ITsasRegCompanyBusiness _TsasRegCompanyBusiness;
private readonly IUnitOfWork _unitOfWork;
private readonly DcContext _dcContext; private readonly IUploadBaseDataBusiness _iuploadBaseDataToActualBusiness; public BaseDataImportController(ITsysManagementBusiness tsysManagementBusiness, ITsysStoreInfoBusiness tsysStoreInfoBusiness, IUnitOfWork unitOfWork, ITsasManagementBusiness tsasManagementBusiness, DcContext dcContext,
ITsasRegCompanyBusiness TsasRegCompanyBusiness, IUploadBaseDataBusiness iUploadBaseDataToActualBusiness)
{
_tsysManagementBusiness = tsysManagementBusiness;
_tsysStoreInfoBusiness = tsysStoreInfoBusiness;
_unitOfWork = unitOfWork;
_tsasManagementBusiness = tsasManagementBusiness;
_dcContext = dcContext;
_TsasRegCompanyBusiness = TsasRegCompanyBusiness;
_iuploadBaseDataToActualBusiness = iUploadBaseDataToActualBusiness;
} //上传基础数据EXCEL
public JsonResult BaseDataTemplateImport(HttpPostedFileBase file)
{
string compId = Request["hid_value"];
//this.DeleteTempDatabase();
//this.CopyTempDatabase(compId);
//读取配置文件上传路径
//var sourceFolder = GlobalConfigurations.sourceFolder;
var sourceFolder = Server.MapPath("/") + @"\Imports\\";
String result = string.Empty;
// v2.00.056 李恒宇 add_s
//System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(sourceFolder);
//if (di.GetFiles().Length + di.GetDirectories().Length != 0)
//{
// var ExistsFilePath = Path.Combine(sourceFolder, Path.GetFileName(file.FileName));
// if (System.IO.File.Exists(ExistsFilePath))
// {
// return "FileExists";
// }
//}
// v2.00.056 李恒宇 add_e
//路径不存在 创建路径
if (!Directory.Exists(sourceFolder))
{
Directory.CreateDirectory(sourceFolder);
}
// v2.00.056 李恒宇 rep_s
//var FilePath = Path.Combine(sourceFolder,compId+" "+Path.GetFileName(file.FileName));
Guid fileGuid = Guid.NewGuid();
Guid userId = _dcContext.CurrentUser.Id;
//string fileName = compId + Path.GetFileName(file.FileName).Split('.')[0] + "+" + fileGuid + ".xlsx";
string fileName = compId + Path.GetFileName(file.FileName).Split('.')[] + "+" + userId + "+" + fileGuid + ".xlsx";
string passExcelName = compId + Path.GetFileName(file.FileName).Split('.')[];
var FilePath = Path.Combine(sourceFolder, Path.GetFileName(fileName));
System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(sourceFolder);
if (di.GetFiles().Length + di.GetDirectories().Length != )
{
FileInfo[] dirInfo = di.GetFiles();
var existExcelName = "";
foreach (FileInfo NextFolder in dirInfo)
{
existExcelName = NextFolder.Name.Split('+')[];
if (existExcelName.Equals(passExcelName))
{
NextFolder.Delete();
}
}
}
// v2.00.056 李恒宇 rep_e
file.SaveAs(FilePath);
// v2.00.056 李恒宇 rep_s
// return result; ResultData RDS = _iuploadBaseDataToActualBusiness.BaseDataTemplateImport(compId, FilePath); // 清除上传的表
System.IO.File.Delete(FilePath);
return Json(RDS);
//return "FileSuccess";
// v2.00.056 李恒宇 rep_e
} public JsonResult GetAllDataImportByCompany(String jsonCompany)
{
List<BaseDataUploadBModel> result = _tsysManagementBusiness.GetAllDataImportByCompany(jsonCompany);
return Json(result);
} /// <summary>
/// 复制临时DB
/// </summary>
/// <param name="compId"></param>
public void CopyTempDatabase(String compId)
{
string connectionString = GlobalConfigurations.connectionString;
string sourceDb = GlobalConfigurations.actualDB;//actualDB
string targetDb = GlobalConfigurations.tempDB;//tempDB
SmoBulkCopy.Copy(connectionString, sourceDb, targetDb, Guid.Parse(compId));
} /// <summary>
/// 删除临时DB
/// </summary>
public void DeleteTempDatabase()
{
string targetDb = GlobalConfigurations.tempDB;
_tsysManagementBusiness.DeleteTempDatabase(targetDb);
} public void PauseLogin(String compId)
{
if (compId == "" || compId == null)
{
return;
}
_tsasManagementBusiness.PauseLogin(Guid.Parse(compId));
} public void RecoveryLogin(String compId)
{
if (compId == "" || compId == null)
{
return;
}
_tsasManagementBusiness.RecoveryLogin(Guid.Parse(compId));
} //v2.00.152 吕毅飞 2017/3/24 add_s
public ActionResult DownloadLog(string companyId)
{
string contentType = "application/txt";
string log = System.Configuration.ConfigurationManager.AppSettings["baseDataImportLog"];
Guid company = Guid.Parse(companyId);
TsasRegCompany comp = _TsasRegCompanyBusiness.Get(company);
log = log.Replace("BulkImportService.log", comp.CompanyLoginMark + "基础数据导入日志.txt");
if (!System.IO.File.Exists(log))//目录下是否有文件
{
System.IO.FileStream fs = new FileStream(log, FileMode.OpenOrCreate);
fs.Close();
}
var file = System.IO.File.Open(log, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
var stream = (Stream)(file);
return File(stream, contentType, comp.CompanyLoginMark + "基础数据导入日志.txt");
}
//v2.00.152 吕毅飞 2017/3/24 add_e
}
}
NPOI 上传Excel功能(二)的更多相关文章
- NPOI 上传Excel功能
1.首先写一个Excel表格,第一行数据库类型(varchar.date.decimal).第二行数据库类型长度(100.12,4.时间日期为空)2.html 加按钮 { type: "bu ...
- NPOI 上传Excel功能(三)
4.验证Excel并上传 using DC.BE.Business.SAS; using DC.BE.Business.SYS; using DC.BE.Entity.SAS; using DC.BE ...
- ASP.NET Core 2.2 : 十六.扒一扒新的Endpoint路由方案 try.dot.net 的正确使用姿势 .Net NPOI 根据excel模板导出excel、直接生成excel .Net NPOI 上传excel文件、提交后台获取excel里的数据
ASP.NET Core 2.2 : 十六.扒一扒新的Endpoint路由方案 ASP.NET Core 从2.2版本开始,采用了一个新的名为Endpoint的路由方案,与原来的方案在使用上差别不 ...
- .Net NPOI 上传excel文件、提交后台获取excel里的数据
1.导入NPOI.dll 2.添加类NPOIExcel.cs using System; using System.Collections.Generic; using System.Text; us ...
- 文件一键上传、汉字转拼音、excel文件上传下载功能模块的实现
----------------------------------------------------------------------------------------------[版权申明: ...
- Salesforce LWC学习(三十二)实现上传 Excel解析其内容
本篇参考:salesforce lightning零基础学习(十七) 实现上传 Excel解析其内容 上一篇我们写了aura方式上传excel解析其内容.lwc作为salesforce的新宠儿,逐渐的 ...
- 微信小程序上传Excel文本文件功能
问题: 在开发过程中会发现微信小程序有很多功能都还不能满足我们的需求,谁叫客户就是上帝呢,前几天小编遇到了这么个问题,就是用微信小程序上传文件,但是还以为微信带有这个模块,可是查了许久还是没有找到,只 ...
- java上传excel到后台解析入库
背景:最近需要做一个excel模板导入的功能,以便用户可以自己增删改查数据,当然,只有特别的用户才能有此权限,捋了捋思路,还是从前端写起 实现: 页面最后的效果如下,可以自己修改,删除,导入导出数据, ...
- js上传Excel文件
一.问题 需要在项目里添加一个上传excel文件的功能,因为其他同样的后台里面有上传文件的功能,第一反应就是想着直接用.了解了一下发现它是利用bootstrap的fileinput实现的,但是我怎么都 ...
随机推荐
- Edusoho之LAMP环境搭建
主要参考官方文档Ubuntu16.04+Apache+PHP+MySQL+EduSoho 安装教程LAMP环境按照如下搭建是没有问题的,本地虚拟机试验是完全没有问题的. 1.更新 sudo apt-g ...
- WebBench压力测试工具(详细源码注释+分析)
本文适合人群:对WebBench实现感兴趣的人 WebBench原理: Linux下使用的服务器压力测试工具,利用fork建立多个子进程,每个子进程在测试时间内不断发送请求报文,建立多个连接,然后由父 ...
- BZOJ1069 SCOI2007 最大土地面积 凸包、旋转卡壳
传送门 在这里假设可以选择两个相同的点吧-- 那么选出来的四个点一定会在凸包上 建立凸包,然后枚举这个四边形的对角线.策略是先枚举对角线上的一个点,然后沿着凸包枚举另一个点.在枚举另一个点的过程中可以 ...
- SpringMVC自动封装List对象 —— 自定义参数解析器
前台传递的参数为集合对象时,后台Controller希望用一个List集合接收数据. 原生SpringMVC是不支持,Controller参数定义为List类型时,接收参数会报如下错误: org.sp ...
- jquery tooltip
这是个加了点淡入淡出效果的顶部tooltip控件,会自动消失 用法: <head> <title></title> <link href="base ...
- Arduino Core For ESP8266
如果选择纯C作为ESP8266的开发,有两个途径: 使用乐鑫官方原生的 RTOS-SDK或者NONOS-SDK 使用Arduino IDE 使用PlatformIO 作为一个"Arduino ...
- 二、xadmin----简单使用
1.中文设置: settings.py中直接配置: LANGUAGE_CODE = "zh-hans" TIME_ZONG = "Asia/Shanghai" ...
- vue内置组件 transition 和 keep-alive 使用
1.transition name - string,用于自动生成 CSS 过渡类名.例如:name: 'fade' 将自动拓展为.fade-enter,.fade-enter-active等.默认类 ...
- shell 读取配置文件的方法
原文地址:http://bbs.chinaunix.net/thread-3628456-1-1.html 总结地址:https://www.cnblogs.com/binbinjx/p/568021 ...
- Flask入门的第一个项目进阶版
前言: 此次版本增加[一对多]数据库关系和动态路由设置. 一.数据库设计 environments表与variable1表的关系为:一对多.variable1.env_id设置为外键,与environ ...