最近项目用的webapi前几天做了个导出excel功能,给大家分享下,自己也记录下。。。

在用的过程中,可以直接请求就可以得到下载的excel文件,在实际的项目中可以通过js打开新页面,encodeURI请求,得到下载excel

NPOI类库的引用,可以直接通过vs直接下载安装

 1  WebApplication3.Controllers
2 {
3 public class SomeModel { public int id { get; set; } }//用于接收传递过来的参数
4 public class DownLoadController : ApiController
5 {
6 // GET: DownLoad
7 public string Index()
8 {
9 return "";
10 }
11
12 //导出excel功能控制器
13 //[Authorize]
14 [HttpGet]
15 [ActionName("Export")]//控制器名称重新定义,加上可以直接请求Exprot
16 public HttpResponseMessage PostExportData(SomeModel model)
17 {
18 var file = ExcelStream();
19 //string csv = _service.GetData(model);
20 HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
21 result.Content = new StreamContent(file);
22 //a text file is actually an octet-stream (pdf, etc)
23 //result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
24
25 result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.ms-excel");
26 //we used attachment to force download
27 result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
28 result.Content.Headers.ContentDisposition.FileName = "file.xls";
29 return result;
30 }
31
32 //得到excel文件流
33 private System.IO.Stream ExcelStream()
34 {
35 //var list = dc.v_bs_dj_bbcdd1.Where(eps).ToList();
36 HSSFWorkbook hssfworkbook = new HSSFWorkbook();
37
38 ISheet sheet1 = hssfworkbook.CreateSheet("保税订单");
39
40
41 IRow rowHeader = sheet1.CreateRow(0);
42
43 //生成excel标题
44 rowHeader.CreateCell(0).SetCellValue("汇通单号");
45 rowHeader.CreateCell(1).SetCellValue("单据日期");
46 rowHeader.CreateCell(2).SetCellValue("订单号");
47 rowHeader.CreateCell(3).SetCellValue("收件人");
48 rowHeader.CreateCell(4).SetCellValue("收件人电话");
49 rowHeader.CreateCell(5).SetCellValue("收件人地址");
50 rowHeader.CreateCell(6).SetCellValue("物流公司");
51 rowHeader.CreateCell(7).SetCellValue("运单号");
52 rowHeader.CreateCell(8).SetCellValue("数量");
53 rowHeader.CreateCell(9).SetCellValue("状态");
54
55 //生成excel内容
56 //for (int i = 0; i < list.Count; i++)
57 //{
58 // NPOI.SS.UserModel.IRow rowtemp = sheet1.CreateRow(i + 1);
59 // rowtemp.CreateCell(0).SetCellValue(list[i].bh_user);
60 // rowtemp.CreateCell(1).SetCellValue(list[i].rq.Value.ToString("yyyy-MM-dd HH:mm:dd"));
61 // rowtemp.CreateCell(2).SetCellValue(list[i].bh_khdd);
62 // rowtemp.CreateCell(3).SetCellValue(list[i].re_name);
63 // rowtemp.CreateCell(4).SetCellValue(list[i].re_tel);
64 // rowtemp.CreateCell(5).SetCellValue(list[i].re_fulladdress);
65 // rowtemp.CreateCell(6).SetCellValue(list[i].bm_kdgs);
66 // rowtemp.CreateCell(7).SetCellValue(list[i].kddh);
67 // rowtemp.CreateCell(8).SetCellValue((int)list[i].sl_total);
68 // rowtemp.CreateCell(9).SetCellValue(list[i].mc_state_dd);
69 //}
70
71 for (int i = 0; i < 10; i++)
72 sheet1.AutoSizeColumn(i);
73
74 MemoryStream file = new MemoryStream();
75 hssfworkbook.Write(file);
76 file.Seek(0, SeekOrigin.Begin);
77
78 return file;
79
80 //return File(file, "application/vnd.ms-excel", "保税订单.xls");
81 }
82
83 }
84 }

webapi到处excel的更多相关文章

  1. Angularjs 通过WebApi 下载excel

    如果想知道 AngularJs 通过WebAPI 下载Excel.请看下文,这里仅提供了一种方案. 服务器端代码如下: protected HttpResponseMessage GenereateE ...

  2. Ionic2+WebApi 导出Excel转Pdf文件。

    步骤: 1.首先在WebApi中先把excel生成好. 2.把excel转成Pdf,并返回下载的链接. 3.Ionic2的页面做好下载的接口. 嗯~思路很清晰,那么下面就来详细的操作吧. 以下是H5的 ...

  3. webApi 导入Excel

    /// <summary> /// 导入 /// </summary> /// <param name="organizationId">< ...

  4. js到处excel

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  5. silverlight中datagrid数据到处excel

    首先新建一个DataGrdiExtensions类,代码为: public static class DataGridExtensions { /// <summary> /// 导出dg ...

  6. webapi 导入excel处理数据

    参考资料     https://blog.csdn.net/pan_junbiao/article/details/82935992 https://www.cnblogs.com/dansedia ...

  7. 注解到处excel

    package com.cxy.domain.poi; import java.lang.annotation.ElementType; import java.lang.annotation.Ret ...

  8. c#使用Microsoft Excel 12.0 object Libary导出的Excel文件office2003不能打开!!~~(分享)

    -----转载:http://hi.baidu.com/zhang_zhu_1/item/f3d47d1f86bf037a70d5e87e 使用C#导出数据到Excel文件时,Excel 2007组件 ...

  9. PowerDesigner 中模型设计导出Excel表格

    今天项目做设计,客户要看数据设计,需要到处Excel表格.去网上搜索下,把使用总结如下: 已经完成设计的pd设计 打开pd,快捷键Ctrl + Shift + X或者Tools>Exectue ...

随机推荐

  1. 如何通过一个SAPGUI屏幕反查这个屏幕对应的事务码

    假设我通过某种跳转方式打开了下图这个SAPGUI的屏幕,但我想搞清楚用哪一个事务码可以直接到达这个屏幕,而不通过繁琐的点击,应该怎么做? 步骤1,点击Order字段,按F1打开帮助界面, 点上图的图标 ...

  2. 2018.11.22 mac中"允许所有安装来源"的命令 & Mac窗口标题显示文件的路径

    当Mac遇到软件无法安装或者此文件已经损坏之类的时候 原因是软件为破解版,地址来源已改变,被系统拦截了,解决办法就是直接在终端中输入"sudo spctl --master-disable ...

  3. Spring多个版本源码地址分享

    源码地址为:http://repo.spring.io/simple/libs-release-local/org/springframework/spring/,以供研究源码的朋友. 我看了好几本关 ...

  4. Android学习笔记_39_tween动画的实现(Animation和Frame)

    一.Animation动画的实现及特点: 1.Tween动画,通过对 View 的内容进行一系列的图形变换 (包括平移.缩放.旋转.改变透明度)来实现动画效果.   动画效果的定义可以采用XML来做也 ...

  5. 深入 Struts2 的配置 - 处理多个请求-处理请求结果-模型驱动-异常机制

    转:http://www.java3z.com/cwbwebhome/article/article2/2938.html?id=1631 本部分主要介绍struts.xml的常用配置. 1.1.   ...

  6. 利用css transition属性实现一个带动画显隐的微信小程序部件

    我们先来看效果图 像这样的一个带过渡效果的小部件在我们实际开发中的应用几率还是比较大的,但是在开发微信小程序的过程中可能有的小伙伴发现transition这个属性它不好使(下面说明)所以我们这个时候会 ...

  7. 菜鸟笔记 -- Chapter 6.2.2 标识符

    6.2.2  标识符 Java中使用标识符来作为类.方法.字段的名称,在Java基础中我们已经简单了解过标识符的定义方法和驼峰命名.本节我们来研究一下标识符的长度问题,难道类名.方法名都可以无限长吗? ...

  8. Oracle 数据导出注意事项

    1.数据导出exp.expbd和imp.impbd 区别: exp,imp:既可以在客户端执行也可以在服务端执行,效率慢于expbd.impbd expbd.impbd:只能够在服务端执行,impbd ...

  9. 洛谷P3871 [TJOI2010]中位数(splay)

    题目描述 给定一个由N个元素组成的整数序列,现在有两种操作: 1 add a 在该序列的最后添加一个整数a,组成长度为N + 1的整数序列 2 mid 输出当前序列的中位数 中位数是指将一个序列按照从 ...

  10. hdu_3123_GCC

    The GNU Compiler Collection (usually shortened to GCC) is a compiler system produced by the GNU Proj ...