首页 > 其他分享 >webapi excel导入

webapi excel导入

时间:2022-12-13 23:12:02浏览次数:55  
标签:webapi set get int excel 导入 GetCell public row

 效果图

 

 

引入命名空间:

using NPOI;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using NPOI.XSSF;
using NPOI.XSSF.UserModel;
using Xiaowu_Ship.Model;

/// <summary>
/// 导入数据
/// </summary>
/// <param name="excelFile"></param>
/// <returns></returns>
[HttpPost]
public async Task<bool> ImportProduct(IFormFileCollection excelFile)
{
try
{
List<stu> stuList = new List<stu>();
foreach (var file in Request.Form.Files)
{

 

var postFile = file;// Request.Form.Files[0];
string extName = Path.GetExtension(postFile.FileName);
if (!new string[] { ".xls", ".xlsx" }.Contains(extName))
{
return false;
}
MemoryStream ms = new MemoryStream();
postFile.CopyTo(ms);
ms.Position = 0;
IWorkbook wb = null;
if (extName.ToLower().Equals(".xls")) // 97-2003版本
{
wb = new HSSFWorkbook(ms);
}
else
{
wb = new XSSFWorkbook(ms); // 2007以上版本
}
ISheet sheet = wb.GetSheetAt(0);
//总行数(0开始)
int totalRow = sheet.LastRowNum;
// 总列数(1开始)
int totalColumn = sheet.GetRow(0).LastCellNum;
for (int i = 1; i <= totalRow; i++)
{
IRow row = sheet.GetRow(i);
// 判定第5列的值是不是日期,日期的值类型可以按日期来读,也可以用数据的方式来读
var isDate = DateUtil.IsCellDateFormatted(row.GetCell(4));
string StuName = row.GetCell(0).StringCellValue;
int Sex = row.GetCell(1).StringCellValue == "男" ? 0 : 1;
string Phone = ((long)row.GetCell(2).NumericCellValue).ToString();
int CId = (int)row.GetCell(3).NumericCellValue;
DateTime InDate = row.GetCell(4).DateCellValue;
decimal JF = (decimal)row.GetCell(5).NumericCellValue;

// 第6列有可能是空的
string Pic = "";
if (row.GetCell(6) != null)
{
CellType type = row.GetCell(6).CellType;
if (type != CellType.Blank)
{
Pic = row.GetCell(6).StringCellValue;
}
}
int State = 0;
if (row.GetCell(7) != null)
{
State = (int)row.GetCell(7).NumericCellValue;
}
var stu = new stu
{
StuName = StuName,
Sex = Sex,
Phone = Phone,
CId = CId,
InDate = InDate,
JF = JF,
Pic = Pic,
State = State,
IsOk = true,
};
stuList.Add(stu);
}
wb.Close();
}
return true;
}
catch (Exception)
{
throw;
}
}

 

实体类:

 

public class stu
{
public string StuName { get; set; }
public int Sex { get; set; }
public string Phone { get; set; }
public int CId { get; set; }
public DateTime InDate { get; set; }
public decimal JF { get; set; }
public string Pic { get; set; }
public int State { get; set; }
public bool IsOk { get; set; }
}

标签:webapi,set,get,int,excel,导入,GetCell,public,row
From: https://www.cnblogs.com/wugh8726254/p/16980935.html

相关文章

  • java 导入Excel数据校验判断哪行那列
    记录工作需求是导入数据的时候需要判断哪一行是空行,或者哪一行超过限制字符,然后返回给前端做展示@PostMapping("/importExcel")@ApiOperation("导入用户")@Ap......
  • vue项目自动导入components
    开发项目中一般组件都放在components目录下,对于一些高频使用的组件我们需要在入口文件中设置为全局组件,一个一个搞,很繁琐,这里通过webpack自动挂载components为全局组件......
  • 通过代码实现Excel中数据插入数据库
    packagecom.tianju.supermelon.controller;importcom.tianju.supermelon.common.dtos.ResponseResult;importcom.tianju.supermelon.domain.AvatarInfo;importcom.tian......
  • ExcelToObject.NPOI 两行代码导出Excel报表、读取Excel数据
    简介作为一个dotnet开发者,经常面对业务系统中大量报表导入导出,经常写了一堆的重复代码。最近发现一个操作excel的神器:ExcelToObject.NPOI,两行代码就能导出一个报表,两行代......
  • 【Unity】超级坦克大战(一)搭建项目、导入框架、前期开发准备
    更新日期:2020年7月9日。项目源码:在终章发布免责声明:超级坦克大战使用的图片、音频等所有素材均有可能来自互联网,本专栏所有文章仅做学习和教程目的,不会将任何素材用于任何......
  • VBA EXCEL 文件合并
    SubUnionWorksheets()DimiAsLong'循环变量i=0DimjAsLong'循环变量j=0Diminsert_rowAsLong'合......
  • idea 导入项目后 左侧文件夹为空的解决办法
    点击File→ProjectStructure在弹出的界面选择Modules→+→importModule,然后选择你导入文件点击OK, 选择导入类型next→勾选Searchforprojectsrecursively(递归寻找项......
  • 通过curl 导入nacos配置文件
    在命令行导入nacos配置文件:参考文档:https://blog.csdn.net/eddiehrs/article/details/114698951curl--location--requestPOST'http://nacosip:8848/nacos/v1/cs/conf......
  • 安卓开发数据可视化---导入数据到excel表格
    现在是2021-03-1200::39刚刚完成了一个小软件部分功能,现在把出现的问题总结如下:一、首先要下载jar包网址:​​https://mvnrepository.com/artifact/net.sourceforge.jexcela......
  • 给ASP.NET Core WebAPI添加Swagger支持
    ASP.NETCoreWebAPI是开发WebAPI接口的有利武器,且由于拥有.NETCore的基因支持跨平台,是当前.NET中开发接口的有利武器。但一般来说WebAPI接口开发完毕后,在发布前还需要测......