第一步,引用空间
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
创建工作簿
HSSFWorkbook wk = new HSSFWorkbook();
//创建一个Sheet
ISheet sheet = wk.CreateSheet("例子");
XSSFWorkbook xssfworkbook = new XSSFWorkbook() ;
ISheet sheet = xssfworkbook.CreateSheet();
创建单元行
//在第一行创建行
IRow row = sheet.CreateRow(0);
//在第一行的第一列创建单元格
ICell cell = row.CreateCell(0);
对单元格赋值
cell.SetCellValue("测试");
using System.IO;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
public ActionResult ApplicationsImport()
{
string fileName = string.Empty;
int successSum = 0;
int failSum = 0;
string lang = System.Threading.Thread.CurrentThread.CurrentUICulture.Name;
OperationResult operationResult = new OperationResult()
{
IsSuccess = false,
Error = "导入失败!"
};
//var categoryJson = WebRequestHelper.GetRequest("AppCategory/GetAllForImport");
//var resulttree = Newtonsoft.Json.JsonConvert.DeserializeObject>>(categoryJson);
//if (!resulttree.IsSuccess)
//{
// throw new Exception(resulttree.Error);
//}
//var categoryList = resulttree.Data;
try
{
HttpPostedFileBase fileData = Request.Files[0];
if (fileData != null && fileData.ContentLength > 0)
{
if (Directory.Exists(Server.MapPath("~/Content/LoadFile/App")) == false)//如果不存在就创建file文件夹
{
Directory.CreateDirectory(Server.MapPath("~/Content/LoadFile/App"));
}
string fileSave = Server.MapPath("~/Content/LoadFile/App/");
string extName = Path.GetExtension(fileData.FileName);
string newName = Guid.NewGuid().ToString() + extName;
fileData.SaveAs(Path.Combine(fileSave, newName));
var strFileName = "~/Content/LoadFile/App/" + newName;
ISheet sheet;
if (extName.ToLower() == ".xlsx")
{
XSSFWorkbook xssfworkbook;
using (FileStream file = new FileStream(Server.MapPath(strFileName), FileMode.Open, FileAccess.Read))
{
xssfworkbook = new XSSFWorkbook(file);
}
sheet = xssfworkbook.GetSheetAt(0);
}
else
{
HSSFWorkbook hssfworkbook;
using (FileStream file = new FileStream(Server.MapPath(strFileName), FileMode.Open, FileAccess.Read))
{
hssfworkbook = new HSSFWorkbook(file);
}
sheet = hssfworkbook.GetSheetAt(0);
}
IRow headerRow = sheet.GetRow(0);
if (headerRow == null)
{
System.IO.File.Delete(Server.MapPath(strFileName));
if (lang.ToLower() == "zh-cn")
{
return Json(new { IsSuccess = false, Error = fileName + "导入失败:导入格式错误!" }, JsonRequestBehavior.AllowGet);
}
else
{
return Json(new { IsSuccess = false, Error = fileName + "Import failure: import format error!" }, JsonRequestBehavior.AllowGet);
}
}
int cellCount = headerRow.LastCellNum;
if (cellCount != 21)//21列 除了guid
{
System.IO.File.Delete(Server.MapPath(strFileName));
if (lang.ToLower() == "zh-cn")
{
return Json(new { IsSuccess = false, Error = fileName + "导入失败:导入格式错误!" }, JsonRequestBehavior.AllowGet);
}
else
{
return Json(new { IsSuccess = false, Error = fileName + "Import failure: import format error!" }, JsonRequestBehavior.AllowGet);
}
}
//因全部完成无法获取提示信息,故而先检验数据完整性
//for (int i = (sheet.FirstRowNum + 1); i <= sheet.LastRowNum; i++)
//{
// IRow row = sheet.GetRow(i);
// for (int j = row.FirstCellNum; j < cellCount; j++)
// {
// //var ass = row.GetCell(j+1);
// if (j == 8 && row.GetCell(j) != null)
// {
// if (row.GetCell(j).ToString() == "0")
// {
// break;
// }
// }
// if (row.GetCell(j) == null && !(j == 7 || j == 3 || j == 4))
// {
// System.IO.File.Delete(Server.MapPath(strFileName));
// if (lang.ToLower() == "zh-cn")
// {
// return Json(new { IsSuccess = false, Error = fileName + "导入失败:导入格式错误!" }, JsonRequestBehavior.AllowGet);
// }
// else
// {
// return Json(new { IsSuccess = false, Error = fileName + "Import failure: import format error!" }, JsonRequestBehavior.AllowGet);
// }
// }
// }
//}
for (int i = (sheet.FirstRowNum + 1); i <= sheet.LastRowNum; i++)
{
IRow row = sheet.GetRow(i);
//string appName = row.GetCell(0).ToString();
//string appEngName = row.GetCell(1).ToString();
//InsistutionTest entity = new InsistutionTest();
//entity.Id =new Guid(row.GetCell(0).ToString());
//entity.Name = row.GetCell(1).ToString();
//entity.No = row.GetCell(2).ToString();
//entity.Version = row.GetCell(3).ToString();
ForeCast entity = new ForeCast();
entity.Id = Guid.NewGuid();
entity.ForecastVersion = row.GetCell(0).ToString();
entity.ExchangeRateDate = Convert.ToDateTime(row.GetCell(1).ToString());
entity.ProductID = row.GetCell(2).ToString();
entity.DatasetID = row.GetCell(3).ToString();
entity.Dataset = row.GetCell(4).ToString();
entity.PublishedDate = Convert.ToDateTime(row.GetCell(5).ToString());
entity.Unit = row.GetCell(6).ToString();
entity.Currency = row.GetCell(7).ToString();
entity.GeographyLevel1 = row.GetCell(8).ToString();
entity.GeographyLevel2 = row.GetCell(9).ToString();
entity.GeographyLevel3 = row.GetCell(10).ToString();
entity.ServicesLevel1 = row.GetCell(11).ToString();
entity.ServicesLevel2 = row.GetCell(12).ToString();
entity.ServicesLevel3 = row.GetCell(13).ToString();
entity.ServicesLevel4 = row.GetCell(14).ToString();
entity.TechnologyLevel1 = row.GetCell(15).ToString();
entity.TechnologyLevel2 = row.GetCell(16).ToString();
entity.TechnologyLevel3 = row.GetCell(17).ToString();
entity.TechnologyLevel4 = row.GetCell(18).ToString();
entity.MetricLevel1 = row.GetCell(19).ToString();
entity.MetricLevel2 = row.GetCell(20).ToString();
var paras = JsonConvert.SerializeObject(entity);
string result = WebRequestHelper.PostRequest("ForeCast/Import", paras);
JObject jo = (JObject)JsonConvert.DeserializeObject(result);
string isSuccess = jo["IsSuccess"].ToString();
if (isSuccess == "False")
{
//System.IO.File.Delete(Server.MapPath(strFileName));
//return Json(new { IsSuccess = false, Error = fileName + "导入失败:导入格式错误!" }, JsonRequestBehavior.AllowGet);
failSum = failSum + 1;
}
else
{
successSum = successSum + 1;
}
}
System.IO.File.Delete(Server.MapPath(strFileName));
var addLog = new LogOperation
{
Account = CurrentUserID,
Name = CurrentUserName,
Module = EnumOperation.News.ToString(),
Operation = "导入",
OpTime = DateTime.Now,
Remark = "APP导入",
IP = GetIp()
};
//WebRequestHelper.PostRequest("Log/AddOperationLog", JsonConvert.SerializeObject(addLog));
}
}
catch (Exception e)
{
var asdfdsf = e.Message;
if (lang.ToLower() == "zh-cn")
{
return Json(new { IsSuccess = false, Error = fileName + "导入失败:导入格式错误!" }, JsonRequestBehavior.AllowGet);
}
else
{
return Json(new { IsSuccess = false, Error = fileName + "Import failure: import format error!" }, JsonRequestBehavior.AllowGet);
}
}
string error;
if (failSum > 0)
{
if (lang.ToLower() == "zh-cn")
{
return Json(new { IsSuccess = false, Error = fileName + "导入失败:名称重复!" }, JsonRequestBehavior.AllowGet);
}
else
{
return Json(new { IsSuccess = false, Error = fileName + "Import failure: Repeat name!" }, JsonRequestBehavior.AllowGet);
}
//error = "成功导入" + successSum + "条记录," + failSum + "条导入失败,失败原因可能是格式错误或已存在相同的数据!";
}
else
{
operationResult.IsSuccess = true;
error = "成功导入" + successSum + "条记录";
}
return Json(new { IsSuccess = operationResult.IsSuccess, Error = error }, JsonRequestBehavior.AllowGet);
}
@Scripts.Render("~/bundles/jqueryval")
@Html.ImportJs("~/Content/webuploader-0.1.5/webuploader.min.js")
@Html.ImportCss("~/Content/webuploader-0.1.5/webuploader.css")
@Html.ImportJs("~/Content/webuploader-0.1.5/webuploader.js")