导出excel 带有图片 或其它功能

http://www.jb51.net/article/26273.htm

 

http://download.csdn.net/download/hb314220380/4550309 

 

 

 #region 导出
    protected void Button2_Click(object sender, EventArgs e)
    {

        jiazaifenye(pagesize, curpage, v);
        if (dt != null)
        {
            #region 操作excel
            Microsoft.Office.Interop.Excel.Workbook xlWorkBook;
            Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;
            xlWorkBook = new Microsoft.Office.Interop.Excel.Application().Workbooks.Add(Type.Missing);
                xlWorkBook.Application.Visible = false;
                xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Sheets[1];

               //设置标题

                xlWorkSheet.Cells[1, 1] = "作者";
                xlWorkSheet.Cells[1, 2] = "作品";
                xlWorkSheet.Cells[1, 3] = "提交时间";
                xlWorkSheet.Cells[1, 4] = "投票数";
                xlWorkSheet.Cells[1, 5] = "作品链接";
                //设置宽度           
                ((Microsoft.Office.Interop.Excel.Range)xlWorkSheet.Cells[1, 2]).ColumnWidth = 15;
                //设置字体
                xlWorkSheet.Cells.Font.Size = 12;
                #region 为excel赋值
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    string dizhi = "";
                    if (dt.Rows[i]["types"].ToString() == "视频") { dizhi = dt.Rows[i]["contens"].ToString(); }
                  //为单元格赋值。
                    xlWorkSheet.Cells[i + 2, 1] = dt.Rows[i]["titles"].ToString();
                   //xlWorkSheet.Cells[i + 1, 2] = dt.Rows[i]["a1"].ToString();
                    xlWorkSheet.Cells[i + 2, 3] = dt.Rows[i]["times"].ToString();
                    xlWorkSheet.Cells[i + 2, 4] = dt.Rows[i]["a2"].ToString();
                    xlWorkSheet.Cells[i + 2, 5] = dizhi;
                    #region

//可以直接取图片的地址
                    string filename = "E:\\天誉网站\\xunyuan\\Web\\upload\\"+dt.Rows[i]["a1"].ToString().Substring(7);
                    #endregion
                    int rangeindex =  i + 2;
                    string rangename = "B" + rangeindex;

                    Microsoft.Office.Interop.Excel.Range range = xlWorkSheet.get_Range(rangename, Type.Missing);
                    range.Select();
                    /
                    float PicLeft, PicTop, PicWidth, PicHeight;    //距离左边距离,顶部距离,图片宽度、高度
                    PicTop = Convert.ToSingle(range.Top) ;
                    PicWidth = Convert.ToSingle(range.MergeArea.Width);
                    PicHeight = Convert.ToSingle(range.Height);
                    PicWidth = Convert.ToSingle(range.Width);
                    PicLeft = Convert.ToSingle(range.Left);
                   

                    Microsoft.Office.Interop.Excel.Pictures pict = (Microsoft.Office.Interop.Excel.Pictures)xlWorkSheet.Pictures(Type.Missing);
                    if (filename.IndexOf(".") > 0)
                    {
                        if (System.IO.File.Exists(filename))
                        {
                           // pict.Insert(filename, Type.Missing);//显示原图   重叠在一起
                            xlWorkSheet.Shapes.AddPicture(filename, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoCTrue, PicLeft, PicTop, PicWidth, PicHeight);//指定位置显示小图
                        }
                    }
                   // ActiveWorkbook

                  


          }
                #endregion
                #region 保存excel文件
                string filePath = Server.MapPath("ReadExcel") + "" + System.DateTime.Now.ToString().Replace(":", "") + "导出.xls";
                xlWorkBook.SaveAs(filePath, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
                xlWorkBook.Application.Quit();
                xlWorkSheet = null;
                xlWorkBook = null;
                GC.Collect();
                System.GC.WaitForPendingFinalizers();
                #endregion
                #endregion

                #region 导出到客户端
                Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
                Response.AppendHeader("content-disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode("导出", System.Text.Encoding.UTF8) + ".xls");
                Response.ContentType = "Application/excel";
                Response.WriteFile(filePath);
                Response.End();
                #endregion
                KillProcessexcel("EXCEL");

            }

        }
        #endregion
        #region 杀死进程
        private void KillProcessexcel(string processName)
        { //获得进程对象,以用来操作
            System.Diagnostics.Process myproc = new System.Diagnostics.Process();
            //得到所有打开的进程
            try
            {
                //获得需要杀死的进程名
                foreach (Process thisproc in Process.GetProcessesByName(processName))
                { //立即杀死进程
                    thisproc.Kill();
                }
            }
            catch (Exception Exc)
            {
                throw new Exception("", Exc);
            }
        }
        #endregion

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值