欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

asp.net core 下载文件,上传excel文件

程序员文章站 2022-10-30 14:14:28
下载文件: 代码: 后端代码: public IActionResult DownloadFile() { var FilePath = @"./files/deparment.xlsx"; var stream = System.IO.File.OpenRead(FilePath); return ......

下载文件:

代码:

后端代码:

public iactionresult downloadfile()
{
var filepath = @"./files/deparment.xlsx";
var stream = system.io.file.openread(filepath);
return file(stream, "application/vnd.android.package-archive", path.getfilename(filepath));
}

页面代码:

<a href="http://****/downloadfile">下载</a>

上传文件:

nuget下载:epplus.core

基本思路:目前是通过将页面上传入的文件保存至项目地址里面,再读取出来,再判断传入ecxel文件的头部是否符合要求,符合则写入数据库

 asp.net core 下载文件,上传excel文件

代码:

后端代码:

public object addmulitdeparment(iformcollection files)
{
string[] colname = new string[] { "公司名称", "部门经理", "部门名称", "员工数量", "部门代码" };
var result = new object();
string message = "";
if (files != null && files.files.count > 0)
{
for (int i = 0; i < files.files.count; i++)
{
var file = files.files[i];
try
{
object path = _importexcelutil.saveexcel(file);
fileinfo fileinfo = new fileinfo((string)path);
using (filestream fs = new filestream(fileinfo.tostring(), filemode.create))
{
file.copyto(fs);
fs.flush();
}
using (excelpackage package = new excelpackage(fileinfo))
{
excelworksheet worksheet = package.workbook.worksheets[1];
if (_importexcelutil.judgecol(worksheet,colname))
{
result = new
{
data = _importexcelutil.savedeptodb(worksheet)
};
system.io.file.delete((string)path);
}
}
}
catch (exception ex)
{
message= ex.message;
}
}
}
return result;
}

//判断头部(取出表格内容同)

public bool judgecol(excelworksheet worksheet,string[] colname)
{
int colcount = worksheet.dimension.columns;
bool bheaderrow = true;
//excel下标从1开始
for (int col = 1,index=0; col <= colcount&&index<colname.length; col++,index++)
{
string c = worksheet.cells[1, col].value.tostring();
if (!c.equals(colname[index]))
{
bheaderrow = false;
throw new exception("格式错误,导入文件的第"+index+"列应为"+colname[index]+"!");
}
}
return bheaderrow;
}

前端代码,由于需要上传文件,需要将http请求头部的content-type修改为multipart/form-data

*仅作为个人学习记录