zoukankan      html  css  js  c++  java
  • 导出EXCEL

    using System;
    using System.Collections.Generic;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using Aspose.Cells;
    using System.Data;
    using System.IO;
    using Sohu.Crm.ExportIqrDetail.SQLUilty;
    
    
    namespace Sohu.Crm.ExportIqrDetail
    {
        public partial class ExportDetail : System.Web.UI.Page
        {
            private DbManage Tool;
            public Aspose.Cells.Style NomalStyle ;  //Excel单元格普通样式
            public Aspose.Cells.Style DateStyle;    //Excel单元格日期样式
            public Aspose.Cells.Style AdviceStyle;    //建议填写字段样式
            public Aspose.Cells.Style RequireStyle;    //必填字段样式
            public Aspose.Cells.Style MiddleStyle;    //居中字体
            public string Iqrid = string.Empty;
            public int WaitIqrDetailCount = 0;
    
          //发件人地址(固定)
            protected void Page_Load(object sender, EventArgs e)
            {
    
                Tool = new DbManage();
                if (!IsPostBack)
                {
                    if (string.IsNullOrEmpty(this.Request.QueryString["Iqrid"]))
                    {
                        this.Response.Write("<script>alert('传入的ID号为空!')</script>");
                        this.Response.Write("<script language=javascript>window.opener = null;window.open('','_self'); window.close();window.parent.close()</script>");
          
                    }
                    else
                    {
                        Iqrid = Request.QueryString["Iqrid"].ToString();
                        DataSet ds = Tool.GetAllIqrDetailInfo(Iqrid); //获取询价单下所有的询价明细信息
                        WaitIqrDetailCount = ds.Tables[0].Rows.Count;
                        if (WaitIqrDetailCount == 0)
                        {
                            this.Response.Write("<script>alert('此张询价单还没有生成明细!')</script>");
                            this.Response.Write("<script language=javascript>window.opener = null;window.open('','_self'); window.close();window.parent.close()</script>");
                        }
                    }
                }
            }
    
            public void ExportDataToExcel(DataTable dt)
            {
                try
                {
                    //string Path = Server.MapPath(@"\Files");//文件存放路径
                    string Path = Server.MapPath(@"\sohu\ExportIqrDetail\Files");//文件存放路径
                    Aspose.Cells.Workbook Excel = new Aspose.Cells.Workbook();
                    if (!File.Exists(Path + @"\样式表.xls"))       //读取Excel单元格样式表
                    {
                        this.Response.Write("<script>alert('没有找到样式表,请联系管理员!')</script>");
                        //this.Response.Write("<script language=javascript>window.opener = null;window.open('','_self'); window.close();window.parent.close()</script>");
                    }
                    Excel.Open(Path + @"\样式表.xls");//打开模板excel
                    NomalStyle = Excel.Worksheets[0].Cells["A1"].Style;//普通样式
                    DateStyle = Excel.Worksheets[0].Cells["B1"].Style;//日期样式 
                    AdviceStyle = Excel.Worksheets[0].Cells["C1"].Style;//建议填写
                    RequireStyle = Excel.Worksheets[0].Cells["D1"].Style;//必须填写
                    MiddleStyle = Excel.Worksheets[0].Cells["E1"].Style;//居中字体
    
    
                    Excel.Worksheets.Clear();
                    Aspose.Cells.Worksheet sheet = Excel.Worksheets.Add("询价单明细");//添加sheet
    
                    //添加列标题
                    sheet.Cells["A1"].PutValue("");
                    sheet.Cells["A1"].SetStyle(AdviceStyle);
    
                    sheet.Cells["B1"].PutValue("建议供应商填写");
                    sheet.Cells["B1"].SetStyle(NomalStyle);
                    sheet.Cells["C1"].SetStyle(NomalStyle);
    
                    sheet.Cells.Merge(0, 1, 1, 2);
    
                    sheet.Cells["D1"].PutValue("");
                    sheet.Cells["D1"].SetStyle(RequireStyle);
    
                    sheet.Cells["E1"].PutValue("供应商必填内容");
                    sheet.Cells["E1"].SetStyle(NomalStyle);
                    sheet.Cells["F1"].SetStyle(NomalStyle);
                   
    
                    sheet.Cells.Merge(0, 4, 1, 2);
    
    
                    sheet.Cells["A3"].PutValue("礼品");
                    sheet.Cells["A3"].SetStyle(NomalStyle);
    
                    sheet.Cells["B3"].PutValue("采购要求");
                    sheet.Cells["B3"].SetStyle(NomalStyle);
    
                    sheet.Cells["C3"].PutValue("采购数量");
                    sheet.Cells["C3"].SetStyle(NomalStyle);
    
                    sheet.Cells["D3"].PutValue("规格信息");
                    sheet.Cells["D3"].SetStyle(AdviceStyle);
    
                    sheet.Cells["E3"].PutValue("报价(单价)");
                    sheet.Cells["E3"].SetStyle(RequireStyle);
    
                    sheet.Cells["F3"].PutValue("报价(总价)");
                    sheet.Cells["F3"].SetStyle(RequireStyle);
    
                    sheet.Cells["G3"].PutValue("价格说明");
                    sheet.Cells["G3"].SetStyle(RequireStyle);
    
    
                    sheet.Cells["H3"].PutValue("确定打样天数");
                    sheet.Cells["H3"].SetStyle(RequireStyle);
    
                    sheet.Cells["I3"].PutValue("大活生产天数");
                    sheet.Cells["I3"].SetStyle(RequireStyle);
    
    
                    sheet.Cells["J3"].PutValue("价格有效日期");
                    sheet.Cells["J3"].SetStyle(RequireStyle);
    
    
                    sheet.Cells["K3"].PutValue("最早供货日期");
                    sheet.Cells["K3"].SetStyle(AdviceStyle);
    
                    sheet.Cells["L3"].PutValue("最迟供货日期");
                    sheet.Cells["L3"].SetStyle(AdviceStyle);
    
                    sheet.Cells["M3"].PutValue("说明");
                    sheet.Cells["M3"].SetStyle(AdviceStyle);
    
                    sheet.Cells["N3"].PutValue("供应商");
                    sheet.Cells["N3"].SetStyle(RequireStyle);
    
    
                    sheet.Cells.ImportDataColumn(dt, false, 3, 0, 4, false);//把 "礼品名称" 列放到Excel第一列
                    sheet.Cells.ImportDataColumn(dt, false, 3, 2, 5, false);//把 "采购数量" 列放到Excel第二列
                    sheet.Cells.ImportDataColumn(dt, false, 3, 3, 6, false);//把 "规格信息" 列放到Excel第三列
                    sheet.Cells.ImportDataColumn(dt, false, 3, 1, 9, false);//把 "采购要求" 列放到Excel第四列
                    sheet.Cells.ImportDataColumn(dt, false, 3, 11, 10, false);//把 "备注" 列放到Excel第六列
                    //sheet.Cells.ImportDataColumn(dt, false, 3, 11, 12, false);//把 "供应商名称" 列放到Excel第十二列
    
                    for (int j = 0; j < dt.Rows.Count; j++)
                    {
                        for (int k = 0; k < 14; k++)
                        {
                            sheet.Cells[j + 3, k].SetStyle(MiddleStyle);//设置单元格的样式
                        }
                    }
                    sheet.AutoFitColumns();
    
                    //生成文件名规则 年月日小时分钟秒.xls
                    string iqrno = dt.Rows[0]["IqrName"].ToString();//取得供应商名称
                    DateTime now = DateTime.Now;
                    string FileName = now.Year.ToString() + (now.Month < 10 ? "0" : "") + now.Month.ToString() + (now.Day < 10 ? "0" : "") + now.Day.ToString();
                    FileName = FileName + "搜狐询价单(" + iqrno + ").xls";
                    DelYestodayFile();
                    if (File.Exists(Path + @"\" + FileName))
                    {
                        File.Delete(Path + @"\" + FileName);
                    }
                    Excel.Save(Path + @"\" + FileName);//保存文件
                    DownLoadFile(Path + @"\" + FileName, FileName);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
               
            }
            protected void DelYestodayFile()
            {
                DateTime yestoday = DateTime.Now.AddDays(-1);
                string Delname = yestoday.Year.ToString() + yestoday.Month.ToString() + yestoday.Day.ToString();
                //string foldername = Server.MapPath(@"Files");//排期表所在目录
                string foldername = Server.MapPath(@"\Sohu\ExportIqrDetail\Files");//排期表所在目录
                string[] filesname = Directory.GetFiles(foldername);
                foreach (string name in filesname)
                {
                    string Lastdir = name.Substring(name.LastIndexOf("\\"));
                    if (Lastdir.IndexOf(Delname) > 0)
                    {
                        File.Delete(name);
                    }
                }
            }
            public void DownLoadFile(string filePath,string FileName)
            {
                FileInfo fileInfo = new FileInfo(filePath);
                if (fileInfo.Exists)//判断文件是否存在
                {
                    Response.Clear();
                    Response.ClearContent(); 
                    Response.ClearHeaders();
                    Response.Buffer = false;
                    Response.AddHeader("Content-Disposition", "attachment;filename=" + Server.UrlEncode(FileName));//显示给用户的文件名
                    Response.AddHeader("Content-Length", fileInfo.Length.ToString());//文件的大小
                    Response.AddHeader("Content-Transfer-Encoding", "binary");
                    Response.ContentType = "application/octet-stream";
                    Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");//编码方式
                    Response.WriteFile(fileInfo.FullName);
                    Response.Flush();//下载文件
                    Response.End();
                }
                else
                {
                    this.Response.Write("<script>alert('文件不存在')</script>");
                }
            }
    
            protected void DownMyFile_Click(object sender, EventArgs e)
            {
               
                DataSet ds = Tool.GetAllIqrDetailInfo(this.HideIqrid.Text); //获取询价单下所有的询价明细信息
                WaitIqrDetailCount = ds.Tables[0].Rows.Count;
                if (WaitIqrDetailCount > 0)
                {
                   
                    Tool.ChangeIqrState(this.HideIqrid.Text);
                    ExportDataToExcel(ds.Tables[0]);
                    this.Response.Write("<script>window.returnValue='导出明细成功'</script>");
                }
                else
                {
                    this.Response.Write("<script>alert('此张询价单还没有生成明细!')</script>");
                    this.Response.Write("<script language=javascript>window.opener = null;window.open('','_self'); window.close();window.parent.close()</script>");
                }
                
            }
        }
    }
    
  • 相关阅读:
    Evanyou Blog 彩带
    Evanyou Blog 彩带
    Evanyou Blog 彩带
    Evanyou Blog 彩带
    Evanyou Blog 彩带
    Evanyou Blog 彩带
    Evanyou Blog 彩带
    ThinkCMF X1.6.0-X2.2.3框架任意内容包含漏洞分析复现
    Apache Solr Velocity模板注入RCE漏洞复现
    WebShell代码分析溯源(十一)
  • 原文地址:https://www.cnblogs.com/hellohongfu/p/2102861.html
Copyright © 2011-2022 走看看