导出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>");

            }

            

        }

    }

}

你可能感兴趣的:(导出Excel)