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实现的,但是我怎么都 ...
随机推荐
- Spring Security(三):1、Getting Started
The later parts of this guide provide an in-depth discussion of the framework architecture and imple ...
- PowerMock单元测试踩坑与总结
1.Mock是什么? 通过提供定制的类加载器以及一些字节码篡改技巧的应用,PowerMock 现了对静态方法.构造方法.私有方法以及 Final 方法的模拟支持,对静态初始化过程的移除等强大的功能. ...
- 动态规划-数位dp
大佬讲的清楚 [https://blog.csdn.net/wust_zzwh/article/details/52100392] 例子 不要62或4 l到r有多少个数不含62或者4 代码 #incl ...
- p68理想的性质
1.如何由2.2.4推出后面的结论? 2.为什么A可以等于R? 3.如何证明3? π:R->R/M套用定理2.2.4(2)和(1) R2是R/M,I是R/M的理想也就是R2的理想,所以f^(-1 ...
- 现有n 个乱序数,都大于 1000 ,让取排行榜前十,时间复杂度为o(n), top10, 或者 topK,应用场景榜单Top:10,堆实现Top k
一.topK python实现 def topk(k, lst): top = [0 for i in range(k)] #生成一个长度为K 的有序列表 for item in lst: #循环 ...
- NEST.net Client
NEST.net Client For Elasticsearch简单应用 由于最近的一个项目中的搜索部分要用到 Elasticsearch 来实现搜索功能,苦于英文差及该方面的系统性资料不好找,在实 ...
- .net WCF WF4.5 状态机、书签与持久化
想看源码请直接翻到最后,使用方式如下图 如果同时需要多个书签可以直接在需要的位置创建书签,会认为是同一个实例. 若需要实现的效果是同时需要好几个部门审核,那么只要在对应的位置同时创建多个书签即可. 编 ...
- php获取URL扩展名
一切拿代码来说话: 举例:'http://www.sina.com.cn/abc/de/fg.php?id=1': $url = 'http://www.sina.com.cn/abc/de/fg.p ...
- react的项目坑
首先在构造页面时 应该将页面的结构分析好. 在处理数据异步时 将数据结构进行完全的简单结构化. 使用redux时 注意返回的数据是深拷贝还是浅拷贝 否则会产生 数组不为空但是没有值的问题 使用自制数据 ...
- Oracle 用户管理与权限分配
用户管理是系统管理员最基本的任务之一,用户想要连接数据库并且使用相应的系统资源就必须是系统的合法用户且具有对应的权限. 1 创建用户 default tablespace default_tables ...