最近项目用的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. 如何使用代码获得一个function module的Where Used List

    如果要获得一个function module的Where Used List,我们通常用的办法是使用ABAP workbench里提供的功能. where used list显示结果如下: 但我接到一 ...

  2. 如何用ABAP代码读取CDS view association的数据

    我有如下一个CDS view, 这个view的数据来自CRMD_ORDERADM_H, 定义了一个名称为_statushelp的association, 指向了另一个CDS view Z_C_Stat ...

  3. 【转】android:windowSoftInputMode属性详解

    android:windowSoftInputMode activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性. 这个属性能影响两件事情: [一] ...

  4. 小练习——关于循环条件---for

    1.打印100个“非常”的句子 static void Main(string[] args) { //打印20个“非常" Console.WriteLine("打印100个非常& ...

  5. BZOJ 2763: [JLOI2011]飞行路线 【分层图模板】

    任意门:https://www.lydsy.com/JudgeOnline/problem.php?id=2763 2763: [JLOI2011]飞行路线 Time Limit: 10 Sec  M ...

  6. webstorm识别php代码

    在 setting --editor--filetype---找到html 在下面的框里点右边加好,添加*.php

  7. mybatis学习记录六——一对一、一对多和多对多查询

    9       订单商品数据模型 9.1     数据模型分析思路 1.每张表记录的数据内容 分模块对每张表记录的内容进行熟悉,相当 于你学习系统 需求(功能)的过程. 2.每张表重要的字段设置 非空 ...

  8. P1800 software_NOI导刊2010提高(06)

    P1800 software_NOI导刊2010提高(06) 题目描述 一个软件开发公司同时要开发两个软件,并且要同时交付给用户,现在公司为了尽快完成这一任务,将每个软件划分成m个模块,由公司里的技术 ...

  9. 【luogu P1903 [国家集训队]数颜色】 题解

    题目链接:https://www.luogu.org/problemnew/show/P1903 裸的...带修莫队... 比较麻烦吧(对我来说是的) 两个变量分开记录查询和修改操作. #includ ...

  10. Unity3d在各个平台读取Sqlite3数据库

    这也是我第一次在Unity3d中使用Sqlite来作为配置表文件,当然了,SQLite有优秀的读写性能. 如果这个项目用着稳定的话,我会一直使用下去. Android平台: 1,下载libsqlite ...