最近项目用的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. Jmeter入门10 jmeter加密串处理方式2:BeanShell PreProcessor

    上一个博客讲了方式一:函数助手__digest加密,BeanShell PreProcessor也可以用java代码进行处理 线程组.参数.请求都直接使用上一个博客的. 第一步 添加BeanShell ...

  2. IOS 远程推送通知(UIRemoteNotification)

    ●  什么是远程推送通知 ●  顾名思义,就是从远程服务器推送给客户端的通知(需要联网) ●  远程推送服务,又称为APNs(Apple Push Notification Services) ●   ...

  3. Android(java)学习笔记28:泛型概述和基本使用

    1. 泛型的概述和基本使用: package cn.itcast_01; import java.util.ArrayList; import java.util.Iterator; /* * Arr ...

  4. 【9.29 模拟】T3 小清新最优化(easy)

    [题目描述] 给出一个长度为 n 的序列,序列的每个元素为一个二元组,代表一种单目运算: • \((0,x)\): 对于一个数\(a\),将其变为 \(a\&x\).\((\&=x)\ ...

  5. python:类与对象命名空间、面对对象的组合用法

    1,类里可以定义两种属性: #静态属性 #静态属性就是直接在类中定义的变量 #动态属性 #动态属性就是定义在类中的方法 class Course: language = ['Chinese']#静态属 ...

  6. NYOJ298 点的变换 【矩阵乘法经典】

    任意门:http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=298 点的变换 时间限制:2000 ms  |  内存限制:65535 KB 难度:5 ...

  7. 2018.11.24 struts2中的OGNL表达式及两者的结合

    OGNL表达式 OGNL:对象视图导航语言. ${user.addr.name} 这种写法就叫对象视图导航. OGNL不仅仅可以视图导航.支持比EL表达式更加丰富的功能. 理解图示 使用OGNL准备工 ...

  8. P2979 [USACO10JAN]奶酪塔Cheese Towers

    P2979 [USACO10JAN]奶酪塔Cheese Towers 背包dp 不过多了一个大奶酪可以压扁其他奶酪的 一开始写了个暴力82分.贪心的选择 然后发现,有如下两种规律 要么最优都是小奶酪, ...

  9. tomcat的下载和启动

    1.下载和解压 把下载好的压缩包解压,放到想刚的目录里 看一下目录: 目录介绍: 2. 启动和访问 启动步骤: 如果startup.bat 双击执行脚本一闪而过,解决方法: 第一可能是:没有配置JAV ...

  10. Spring 事务声明无效果(转)

    为了打印清楚日志,很多方法我都加tyr catch,在catch中打印日志.但是这边情况来了,当这个方法异常时候 日志是打印了,但是加的事务却没有回滚. 例:      类似这样的方法不会回滚 (一个 ...