亚洲欧美精品沙发,日韩在线精品视频,亚洲Av每日更新在线观看,亚洲国产另类一区在线5

<pre id="hdphd"></pre>

  • <div id="hdphd"><small id="hdphd"></small></div>
      學習啦>學習電腦>工具軟件>辦公軟件學習>Excel教程>Excel基礎>

      將asp圖片導出Excel的方法

      時間: 張偉670 分享

        小編在網(wǎng)上找了很多要將asp圖片導出Excel方法,當時網(wǎng)上很多都是著實虛無,目前所知的方法有4種。

        1.網(wǎng)上包括csdn大部分流行的方法,強制輸出html格式為xls格式。優(yōu)點效率高,速度快。缺點也很明顯,畢竟不是真正的Excel格式,只是利用了office2000以后的版本可以直接打開html文件的特性強制生成的。無法改變單元格格式等。尤其是office2007,打開會提示 您嘗試打開的*xls"的格式與文件擴展名指定的格式不一致。并且按保存時,會發(fā)現(xiàn)默認格式是txt。這種方法不建議使用。

        2.JavaScript格式,粗略的看了下。有個致命的問題,要設置ie安全屬性。一般用戶會為了一個功能去繁瑣的更高ie設置?而且也不是真正的csv格式,xls格式而已。不考慮。

        3.第三方控件,使用過MyXls這個控件,生成的真正的xls文件。效率高,使用簡單,不用考慮資源釋放的問題??上窗l(fā)現(xiàn)導出圖片的方法。不過一般導出Excel的話,強烈推薦!

        4.使用微軟的官方COM組件。優(yōu)點:功能強大。缺點:效率低,需要手動關閉進程,釋放資源,而且服務器端還需安裝office。暫時只發(fā)現(xiàn)這個可以導出圖象到Excel。

        方法如下:

        雖然服務器必須安裝office,但并不需要安裝完整版本的office,本人發(fā)現(xiàn)精簡版也可以。只不過設置麻煩一些而已。

        先安裝O2003PIA補丁。下載地址百度。網(wǎng)上一堆。如果你安裝完整版的office,可以跳過這部。

        然后導入COM組件

        確定即可。

        然后添加引用,如果安裝的是完整版的,直接在引用的tab框中添加即可。

        如果您是精簡版的,下載個Microsoft.Office.Interop.Excel.dll。然后放到網(wǎng)站根目錄

        代碼如下

        using System;

        using System.Data;

        using System.Configuration;

        using System.Web;

        using System.Web.Security;

        using System.Web.UI;

        using System.Web.UI.WebControls;

        using System.Web.UI.WebControls.WebParts;

        using System.Web.UI.HtmlControls;

        //導入Com組件

        using Microsoft.Office.Core;

        //添加引用

        using ex=Microsoft.Office.Interop.Excel;

        using System.Reflection;

        public partial class _Default : System.Web.UI.Page

        {

        ///

        /// ASP.NET導出圖象到Excel

        /// 創(chuàng)建人:吳凱平

        /// 創(chuàng)建時間:2010年1月3日 12:46:38

        ///

        ///

        ///

        protected void Page_Load(object sender, EventArgs e)

        {

        }

        ///

        /// 導出到Excel

        ///

        ///

        ///

        protected void btnExcel_Click(object sender, EventArgs e)

        {

        //聲明一個默認值

        object missing = Missing.Value;

        //聲明一個Excel應用程序?qū)ο?/p>

        ex.Application excelObj = new ex.ApplicationClass();

        //禁用Excel提示(否則第二次生成會提示是否覆蓋等..)

        excelObj.DisplayAlerts = false;

        //不顯示excel??

        excelObj.Visible = false;

        //創(chuàng)建workbooks

        ex.Workbooks wbooks = excelObj.Workbooks;

        //使用Excel模板創(chuàng)建一個工作簿(模板必須先創(chuàng)建好放在網(wǎng)站可訪問目錄下)

        ex.Workbook wbook = wbooks.Open(Server.MapPath("模板路徑"), missing, missing,

        missing, missing, missing, missing, missing, missing, missing, missing, missing, missing,

        missing, missing);

        //新建一個excel工作表集合

        ex.Worksheets sheets = (ex.Worksheets)wbook.Worksheets;

        //新建一個工作表

        ex._Worksheet sheet = (ex._Worksheet)sheets.get_Item(1);

        //聲明一個pictures對象,用來存放sheet的圖片

        ex.Pictures pics = (ex.Pictures)sheet.Pictures(missing);

        //設置要插入的圖片路徑

        pics.Insert(Server.MapPath("圖片路徑"),

        MsoTriState.msoFalse, MsoTriState.msoCTrue);

        //插入圖片

        }

        }

        ///

        /// 輸出Excel

        ///

        ///

        ///

        protected void ImageButton1_Click(object sender, ImageClickEventArgs e)

        {

        if (chltStat.Visible == false)

        {

        ClientScript.RegisterStartupScript(GetType(), "", "alert('沒有數(shù)據(jù)請生成數(shù)據(jù)再導入!');", true);

        return;

        }

        object missing = Missing.Value;

        //定義一個Excel應用程序

        ex.ApplicationClass excelObj = new ex.ApplicationClass();

        excelObj.DisplayAlerts = false;

        excelObj.Visible = false;

        ex.Workbooks wbooks = excelObj.Workbooks;

        ex.Workbook wbook = wbooks.Open(Server.MapPath("../動態(tài)經(jīng)營統(tǒng)計數(shù)據(jù).xls"), missing, missing, missing, missing, missing, missing,

        missing, missing, missing, missing, missing, missing, missing, missing);

        ex.Sheets sheets = (ex.Sheets)wbook.Worksheets;

        ex._Worksheet sheet = (ex._Worksheet)sheets.get_Item(1);

        ex.Range exRange = (ex.Range)sheet.get_Range("B2", missing);

        exRange.Select();

        //聲明一個pictures對象,用來存放柱狀圖

        ex.Pictures pics = (ex.Pictures)sheet.Pictures(missing);

        //插入圖片

        pics.Insert(Server.MapPath("Chartlet_chltStat_區(qū)企業(yè)年度信息統(tǒng)計表_Bar.Jpg"), missing);

        sheet.Shapes.AddPicture(Server.MapPath("Chartlet_chltStat2_區(qū)企業(yè)年度信息統(tǒng)計表_Line.Jpg"),

        Microsoft.Office.Core.MsoTriState.msoFalse,

        Microsoft.Office.Core.MsoTriState.msoCTrue,

        50, 400, 570, 368);//504 326

        wbook.SaveAs(Server.MapPath("../xls/動態(tài)經(jīng)營統(tǒng)計數(shù)據(jù).xls"), missing, missing, missing, missing, missing,

        Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, missing, missing, missing, missing,

        missing);

        wbook.Close(false, missing, missing);

        excelObj.Quit();

        ClientScript.RegisterStartupScript(GetType(), "", "window.location.href='../xls/動態(tài)經(jīng)營統(tǒng)計數(shù)據(jù).xls';", true);

        //必須關閉釋放所引用的COM對象,關閉Excel進程,否則會占用服務器資源

        ReleaseObj(sheets);

        ReleaseObj(wbook);

        ReleaseObj(wbooks);

        ReleaseObj(excelObj);

        System.GC.Collect();

        System.GC.WaitForPendingFinalizers();

        //BindGv();

        string filePath = Server.MapPath("../xls/動態(tài)經(jīng)營統(tǒng)計數(shù)據(jù).xls");

        Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");

        Response.AppendHeader("content-disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode("動態(tài)經(jīng)營統(tǒng)計數(shù)據(jù)", System.Text.Encoding.UTF8) + ".xls");

        Response.ContentType = "Application/excel";

        Response.WriteFile(filePath);

        Response.End();

        }

      353987