有时我们需要把execl表从本地(服务器本地)下载下来当模板使用,然后根据模板填写信息,将execl表导入数据库中。这是我们就不得不了解execl表的导入导出了,下面分享一下我的代码;
下载本地execl
/// <summary>
/// 下载
/// </summary>
/// <returns></returns>
[HttpGet]
public HttpResponseMessage Download()
{
string fileName = "下载.xls";
string filePath = HttpContext.Current.Server.MapPath("~/") + "xxx\\xxx\\xxx\\" + "下载.xls";
FileStream stream = new FileStream(filePath, FileMode.Open);
HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
response.Content = new StreamContent(stream);
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") {
FileName= HttpUtility.UrlEncode(fileName)
};
response.Headers.Add("Access-Control-Expose-Headers", "FileName");
response.Headers.Add("FileName", HttpUtility.UrlEncode(fileName));
return response;
}
导入execl
实现方法
/// <summary>
/// 导入
/// </summary>
/// <returns></returns>
[HttpPost]
public async Task<TestClass> Implementation()
{
var fileList = HttpContext.Current.Request.Files;
if (fileList .Count == 0)
{
throw new Exception("操作失败!没有上传文件!");
}
var file = filelist[0];
List<TestClass> result= new