国产宅男网站在线|亚洲A级性爱免费视频|亚洲中精品级在线|午夜福利AA毛

  • <dd id="gf5jf"><th id="gf5jf"></th></dd>

    <cite id="gf5jf"><label id="gf5jf"></label></cite>
  • <div id="gf5jf"><listing id="gf5jf"></listing></div>
    學(xué)習(xí)啦>學(xué)習(xí)電腦>工具軟件>辦公軟件學(xué)習(xí)>Excel教程>Excel基礎(chǔ)>

    將asp圖片導(dǎo)出Excel的方法

    時(shí)間: 張偉670 分享

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

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

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

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

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

      方法如下:

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

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

      然后導(dǎo)入COM組件

      確定即可。

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

      如果您是精簡(jiǎn)版的,下載個(gè)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;

      //導(dǎo)入Com組件

      using Microsoft.Office.Core;

      //添加引用

      using ex=Microsoft.Office.Interop.Excel;

      using System.Reflection;

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

      {

      ///

      /// ASP.NET導(dǎo)出圖象到Excel

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

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

      ///

      ///

      ///

      protected void Page_Load(object sender, EventArgs e)

      {

      }

      ///

      /// 導(dǎo)出到Excel

      ///

      ///

      ///

      protected void btnExcel_Click(object sender, EventArgs e)

      {

      //聲明一個(gè)默認(rèn)值

      object missing = Missing.Value;

      //聲明一個(gè)Excel應(yīng)用程序?qū)ο?/p>

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

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

      excelObj.DisplayAlerts = false;

      //不顯示excel??

      excelObj.Visible = false;

      //創(chuàng)建workbooks

      ex.Workbooks wbooks = excelObj.Workbooks;

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

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

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

      missing, missing);

      //新建一個(gè)excel工作表集合

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

      //新建一個(gè)工作表

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

      //聲明一個(gè)pictures對(duì)象,用來(lái)存放sheet的圖片

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

      //設(shè)置要插入的圖片路徑

      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('沒(méi)有數(shù)據(jù)請(qǐng)生成數(shù)據(jù)再導(dǎo)入!');", true);

      return;

      }

      object missing = Missing.Value;

      //定義一個(gè)Excel應(yīng)用程序

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

      excelObj.DisplayAlerts = false;

      excelObj.Visible = false;

      ex.Workbooks wbooks = excelObj.Workbooks;

      ex.Workbook wbook = wbooks.Open(Server.MapPath("../動(dòng)態(tài)經(jīng)營(yíng)統(tǒng)計(jì)數(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();

      //聲明一個(gè)pictures對(duì)象,用來(lái)存放柱狀圖

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

      //插入圖片

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

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

      Microsoft.Office.Core.MsoTriState.msoFalse,

      Microsoft.Office.Core.MsoTriState.msoCTrue,

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

      wbook.SaveAs(Server.MapPath("../xls/動(dòng)態(tài)經(jīng)營(yíng)統(tǒng)計(jì)數(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/動(dòng)態(tài)經(jīng)營(yíng)統(tǒng)計(jì)數(shù)據(jù).xls';", true);

      //必須關(guān)閉釋放所引用的COM對(duì)象,關(guān)閉Excel進(jìn)程,否則會(huì)占用服務(wù)器資源

      ReleaseObj(sheets);

      ReleaseObj(wbook);

      ReleaseObj(wbooks);

      ReleaseObj(excelObj);

      System.GC.Collect();

      System.GC.WaitForPendingFinalizers();

      //BindGv();

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

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

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

      Response.ContentType = "Application/excel";

      Response.WriteFile(filePath);

      Response.End();

      }

    353987