前台代码:

<button class="btn btn-warning" type="button" onclick="location.href = '/DownExpress/DownExpress2'">
导出报表
</button>

后台代码:

public void DownExpress2()
{
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("序号", typeof(string)));
dt.Columns.Add(new DataColumn("计划单号", typeof(string)));
dt.Columns.Add(new DataColumn("出库日期", typeof(string)));
dt.Columns.Add(new DataColumn("客户名称", typeof(string)));
dt.Columns.Add(new DataColumn("状态", typeof(string))); #region 补填表结构+数据
List<SaleOutboundOrderChild> saleoutboundorderchild = new List<SaleOutboundOrderChild>();
if (Session["SaleOutboundOrderChild"] != null)
saleoutboundorderchild = (List<SaleOutboundOrderChild>)Session["SaleOutboundOrderChild"];
if (saleoutboundorderchild.Count() == 0)
Response.Write("<script type='text/javascript'>alert('没有查询到数据!')</script>");
int num = 1;
foreach (var item in saleoutboundorderchild)
{
string TPrice = item.TPrice.ToString();
if (item.SaleOutboundOrder.BackID != null)
TPrice = "-" + TPrice;
string TypeClassRollName = "";
if (item.TypeClassRoll != null)
TypeClassRollName = item.TypeClassRoll.Name;
double? Zprice = 0;
var m = db.StockInfo.FirstOrDefault(n => n.Code == item.MaterialCoding);
if (m != null)
Zprice = m.UnitPrice * item.TQuantity;
if (item.SaleOutboundOrder.BackHouse == 1)
Zprice = -Zprice; string TypeName = "";
if (item.MaterielTwo != null)
{
TypeName = item.MaterielTwo.TypeName.Replace("\t", ""); }
dt.Rows.Add(num++, item.MarketingPlanChild.MarketingPlan.OrderNo, Common.Date(item.SaleOutboundOrder.SaleDate), item.MarketingPlanChild.MarketingPlan.Client.AbbreviationName, item.MarketingPlanChild.PStatus );//补填数据
}
string shtnl = "";
for (int a = 0; a < dt.Columns.Count; a++)
{
shtnl = shtnl + dt.Columns[a] + '\t';
}
shtnl = shtnl + "\n";
for (int i = 0; i < dt.Rows.Count; i++)
{ for (int j = 0; j < dt.Columns.Count; j++)
{
shtnl = shtnl + dt.Rows[i][j] + '\t';
}
shtnl = shtnl + "\n"; }
DateTime dtime = DateTime.Now;
#endregion
ComNo.ExportToExcel("application/x-excel", "销售出库单数据.xls", shtnl);
}

 ExportToExcel

        /// <summary>
/// 导出表格信息
/// </summary>
/// <param name="FieldType"></param>
/// <param name="FileName"></param>
/// <param name="dt"></param>
public static void ExportToExcel(string FieldType, string FileName, string dt)
{
System.Web.HttpContext.Current.Response.Charset = "utf-8";
System.Web.HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8).ToString());
System.Web.HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
System.Web.HttpContext.Current.Response.ContentType = FieldType;
StringWriter tw = new StringWriter();
System.Web.HttpContext.Current.Response.Output.Write(dt);
System.Web.HttpContext.Current.Response.Flush();
System.Web.HttpContext.Current.Response.End();
}

  

Execl导出系统的更多相关文章

  1. mvc简单execl导出

    直接上代码: public static byte[] GetExecl(DataTable dt, List<string> list) { var sbHtml = new Strin ...

  2. Dynamics CRM 导出系统中实体的属性字段到EXCEL

    我们在CRM中看元数据信息,可以通过SDK中的metadata browser的解决方案包,但该解决方案包只是在可视化上方便了,但如果我们需要在excel中整理系统的数据字典时这个解决方案包就派不上用 ...

  3. execl 导出

    /** * 导出   是把数表中的数据添加到execl表中 */ public function export(){ $xlsData = Db('user')->select(); Vendo ...

  4. java中poi进行execl导出

    首先贴出最终导出的execl截图吧: 前台界面如下: 点击导出时,为其按钮的onclick事件添加exportDate()函数: function exportDate(){ var begin_Da ...

  5. 将表格table作为execl导出

    有时候的需求是从后台获取数据,然后将数据变成execl,进行导出,下载成execl 解决的方法是 一,比较方便的是 这有个插件 可以直接用 https://www.npmjs.com/package/ ...

  6. VirtualBox虚拟机--导入导出系统&主机启用硬件虚拟化

    问题概述:在往新电脑中导入其他电脑中导出的虚拟机后,启动该虚拟机系统时报错说主机不支持硬件虚拟化. 将电脑1中VirtualBox的一个虚拟机系统win7导出成.ova格式的文件, 在电脑2中安装Vi ...

  7. 在一个form里边同时执行搜索和 execl导出功能

    一个form 分搜索 和 导出<form name="searchform" id="searchform" > <input type=&q ...

  8. 微信公众号用户OpenID同步导出系统

    一.简介 同步公众账号用户信息,包括OpenID.昵称.头像.地区等. 二.主要功能 同步公众账号用户 OpenID,以及昵称.头像.性别.地区.关注时间等,支持认证订阅号.认证服务号. 支持超过1万 ...

  9. C#多样式EXECl导出

    sing NPOI.HPSF; using NPOI.HSSF.UserModel; using NPOI.HSSF.Util; using System; using System.Collecti ...

随机推荐

  1. nodejs 使用 body-parser 获取网页内容

    var bodyParser = require('body-parser'); var urlencodedParser = bodyParser.urlencoded({ extended: fa ...

  2. Dictionary的基本用法

    1.创建泛型哈希表,然后加入元素 Dictionary<string,string> openWith=new Dictionary<string, string>(); op ...

  3. ES6常用语法(二)

    arrow functions (箭头函数) 函数的快捷写法.不需要 function 关键字来创建函数,省略 return 关键字,继承当前上下文的 this 关键字 // ES5 var arr1 ...

  4. Android实战项目——家庭记账本(四)

    今天是开发的第四天,完成的主要内容如下: 1.账单查询功能的完善以及查询结果的显示和编辑 2.侧边栏布局的实现 3.首页fragment中本月与上月对比账目情况 实现的效果如图: 已添加的账单内容以及 ...

  5. 本地服务开启MySQL57提示本地计算机上MySQL服务启动后停止。。。。

    1.首先以管理员身份启动cmd,要不然服务禁止访问. 2.然后在cmd中输入 mysqld --remove mysql或者mysqld --remove mysql57来移除服务. 3.然后进入My ...

  6. 浅谈python的第三方库——numpy(三)

    numpy库中矩阵的常用方法 1 矩阵转置 从上图可以看出:使用方法a.T可以将矩阵a转置. 2 均值与方差 注意:方法a.mean()会对矩阵a的所有元素求均值,a.var()也是考虑矩阵a的所有元 ...

  7. 【58】目标检测之YOLO 算法

    YOLO 算法(Putting it together: YOLO algorithm) 你们已经学到对象检测算法的大部分组件了,在这个笔记里,我们会把所有组件组装在一起构成YOLO对象检测算法.   ...

  8. Auto-scaling scikit-learn with Apache Spark

    来源:https://databricks.com/blog/2016/02/08/auto-scaling-scikit-learn-with-apache-spark.html Data scie ...

  9. ASP.NET MVC5----数据注解和验证

    在使用MVC模式进行开发时,数据注解是经常使用的(模型之上操作),下面是我看书整理的一些常见的用法. 什么是验证,数据注解 验证 从全局来看,发现逻辑仅是整个验证的很小的一部分.验证首先需要管理用户友 ...

  10. linux vi编辑器光标跳到文件末尾

    1.:0,:1,gg都可以到第一行2.shift+g到末行3.或者:$=检查总行数比如24,:24到第24行