using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using System.Data;
using System.Text;

public partial class ckgl_ck_ckqd : System.Web.UI.Page
{
    private static BLLV_Order bllv_order = new BLLV_Order();
    private static BLLOutbound bll_outbound = new BLLOutbound();
    private static BLLOrderDetial bll_orderdetial = new BLLOrderDetial();
    private static BLLV_OutboundDetial bllv_outbounddetial = new BLLV_OutboundDetial();
    private static BLLV_OutboundDetial_Count_Ext bll_outbounddetial_ext = new BLLV_OutboundDetial_Count_Ext();
    protected static BLLStorage bllstorage = new BLLStorage();
    protected BLLSpace bllspace = new BLLSpace();
    List<StorageModel> storagemodellist = bllstorage.SelectAll();
    private static BLLOrder bllorder = new BLLOrder();
    private static int PageSize = 10000;
    private static string Order_IDs = "";
    private static string Outbound_ID = "";
    private static V_OutboundDetialModel v_obdm = new V_OutboundDetialModel();
    private static BLLOperLog blloperlog = new BLLOperLog();

//导出Excel文件
    protected void btn_Export_Click(object sender, EventArgs e)
    {
        Dictionary<string, string> dicspace = new Dictionary<string, string>();
        foreach (var item in storagemodellist)
        {
            SpaceModel sm = new SpaceModel();
            sm.Storage_ID = item.Storage_ID;
            List<SpaceModel> spacelist = bllspace.Select(sm, "1");
            foreach (var space in spacelist)
            {
                dicspace.Add(item.Storage_ID + space.Space_ID, space.Name);
            }
        }
        try
        {
            V_OutboundDetial_Count_ExtModel outbounddetial_ext_model = new V_OutboundDetial_Count_ExtModel();
            outbounddetial_ext_model.Outbound_ID = Outbound_ID;
            outbounddetial_ext_model.OutType = "0";
            List<V_OutboundDetial_Count_ExtModel> count_ext_models = bll_outbounddetial_ext.Select(outbounddetial_ext_model, "1");
            DataTable dt = new DataTable();
            DataColumn[] dc ={
                           new DataColumn("学习资料编号"),
                           new DataColumn("教学资料名称"),
                           new DataColumn("订购类型"),
                           new DataColumn("数量"),
                           new DataColumn("单价(元)"),
                           new DataColumn("库位"),
                           new DataColumn("仓位")
                       };
            dt.Columns.AddRange(dc);
            DataRow drHead = dt.NewRow();
            drHead["学习资料编号"] = "学习资料编号";
            drHead["教学资料名称"] = "教学资料名称";
            drHead["订购类型"] = "订购类型";
            drHead["数量"] = "数量";
            drHead["单价(元)"] = "单价(元)";
            drHead["库位"] = "库位";
            drHead["仓位"] = "仓位";
            dt.Rows.Add(drHead);
            //导入内容
            foreach (var model in count_ext_models)
            {
                DataRow dr = dt.NewRow();
                dr["学习资料编号"] = model.TMID;
                dr["教学资料名称"] = model.TMName;
                dr["订购类型"] = model.OrderName;
                dr["数量"] = model.SumCount;
                dr["单价(元)"] = model.Price;
                dr["库位"] = model.StorName;
                dr["仓位"] = dicspace[model.Storage_ID + model.Space_ID];
                dt.Rows.Add(dr);
            }
            ExportByWeb(dt, "出库清单.xls");
            //ExportExcel1.FileName = "出库清单.xls";
            //ExportExcel1.ExportToExcel(dt);
        }
        catch (Exception ex)
        {
            string strmessage = @"alert('" + ex.Message + "');";
            ClientScript.RegisterStartupScript(this.GetType(), "", strmessage, true);
        }
    }
 
    public static void ExportByWeb(DataTable dtSource, string strFileName)
    {
        try
        {
            HttpContext curContext = HttpContext.Current;

// 设置编码和附件格式   
            curContext.Response.ContentType = "application/vnd.ms-excel";
            curContext.Response.ContentEncoding = Encoding.UTF8;
            curContext.Response.Charset = "";
            curContext.Response.AppendHeader("Content-Disposition",
                "attachment;filename=" + HttpUtility.UrlEncode(strFileName, Encoding.UTF8));

curContext.Response.BinaryWrite(Cau_TeachOrderLibrary.Common.RenderToExcel(dtSource).GetBuffer());
            curContext.Response.End();
        }
        catch (Exception ee)
        {
            throw new ApplicationException("导出过程出错!" + ee.Message);

}

}
}

Excel导出cs文件的更多相关文章

  1. thinkphp3.2.3 excel导出,下载文件,包含图片

    关于导出后出错的问题 https://segmentfault.com/q/1010000005330214 https://blog.csdn.net/ohmygirl/article/detail ...

  2. Excel导出插件

    前言 一个游戏通常需要10多个Excel表格或者更多来配置,一般会通过导出csv格式读取配置. 本文提供导出Excel直接生成c#文件,对应数据直接生成结构体和数组,方便开发排错和简化重复写每个表格的 ...

  3. Excel导出插件-VSTO

    前言 一个游戏通常需要10多个Excel表格或者更多来配置,一般会通过导出csv格式读取配置. 本文提供导出Excel直接生成c#文件,对应数据直接生成结构体和数组,方便开发排错和简化重复写每个表格的 ...

  4. asp.net教程:GridView导出到Excel或Word文件

    asp.net教程:GridView导出到Excel或Word文件</ br> 在项目中我们经常会遇到要求将一些数据导出成Excel或者Word表格的情况,比如中国移动(我是中国移动用户) ...

  5. asp.net(C#) Excel导出类 导出.xls文件

    ---恢复内容开始--- using Microsoft.Office.Interop.Excel; 针对office 2003需添加引用Microsoft   Excel   11.0   Obje ...

  6. (转载)DBGridEh导出Excel等格式文件

    DBGridEh导出Excel等格式文件 uses DBGridEhImpExp; {--------------------------------------------------------- ...

  7. Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类

    Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类 ============================== ©Copyright 蕃薯耀 20 ...

  8. Laravel Excel 实现 Excel-CSV 文件导入导出功能

    Laravel Excel 是一款基于 PHPExcel 开发的Laravel框架专用的 Excel/CSV 文件导入导出功能的扩展包,用起来的非常方便. 它的 Github 地址是:https:// ...

  9. C# Aspose.Cells导出xlsx格式Excel,打开文件报“Excel 已完成文件级验证和修复。此工作簿的某些部分可能已被修复或丢弃”

    报错信息: 最近打开下载的 Excel,会报如下错误.(xls 格式不受影响) 解决方案: 下载代码(红色为新添代码) public void download() { string fileName ...

随机推荐

  1. Android新建项目手动添加Layout布局

    前言: 这是看<第一行代码>学习到的第一章,之前使用Eclipse创建Android项目都是自动生成MainActivity.java文件和layout文件夹下的activity_main ...

  2. javascript-ajax学习

    /**  *     @todo 封装Ajax 传输类  *     @param params:参数  *    @example 用法: var mAjaxer = new Ajaxer(para ...

  3. CI练手下,找找感觉

    从军哥谈CI框架上看了点点. controller: <?php class Jayjun extends CI_Controller { public function __construct ...

  4. KEILC51可重入函数及模拟栈浅析

    MARK:文章中的红色部分是个人的理解. KEILC51可重入函数及模拟栈浅析 关键字:keilc51,模拟堆栈,可重入函数调用,参数传递,C?XBP,C?ADDXBP 摘要:本文较详细的介绍了kei ...

  5. Qt如何去掉按钮等控件的虚线框(焦点框)(两种方法)

    方法1:可以通过代码ui->pushButton->setFocusPolicy(Qt::NoFocus)或在Qt Creator的属性列表中设置. 方法2:如果在嵌入式设备中需要通过按键 ...

  6. Powershell---1 介绍和安装

    Powershell 介绍和安装   Powershell 是运行在windows机器上实现系统和应用程序管理自动化的命令行脚本环境.你可以把它看成是命令行提示符cmd.exe的扩充,不对,应当是颠覆 ...

  7. Xming + PuTTY 在Windows下远程Linux主机

    Xming + PuTTY 在Windows下远程Linux主机 一.原理     Linux/Unix的X Window具有网络透明性.X Window系统里有一个统一的Server来负责各个程序与 ...

  8. 转:更新Android SDK之后Eclipse提示ADT版本过低的一个简易解决办法

    拜GFW所赐,对于初学者的我来说,总会出现一些莫名其妙的问题 首先说明一下发表这一篇博文的“历史原因”吧,因为在更新SDK之后,进入Eclipse设置Android SDK目录的时候,会突然说我的版本 ...

  9. 【转】Android兼容性测试CTS Verifier-环境搭建、测试执行、结果分析

    原文网址:http://www.cnblogs.com/zh-ya-jing/p/4452675.html CTS Verifier算是CTS的一部分,需要手动进行,主要用于测试那些自动测试系统无法测 ...

  10. unix c 03

    C程序员的错误处理   errno/perror/strerror 都是系统设计好的   自定义函数中的错误处理    1 可以返回-1 代表错误    2 指针类型可以用 NULL 代表错误    ...