主頁 > 知識(shí)庫 > asp.net中調(diào)用Office來制作3D統(tǒng)計(jì)圖的實(shí)例代碼

asp.net中調(diào)用Office來制作3D統(tǒng)計(jì)圖的實(shí)例代碼

熱門標(biāo)簽:巫師3為什么地圖標(biāo)注的財(cái)寶沒有 外呼系統(tǒng)代理品牌 十堰正規(guī)電銷機(jī)器人系統(tǒng) 辦理400電話證件 怎么給超市做地圖標(biāo)注入駐店 外呼系統(tǒng)費(fèi)用一年 手機(jī)地圖標(biāo)注如何刪除 寧波自動(dòng)外呼系統(tǒng)代理 世紀(jì)佳緣地圖標(biāo)注怎么去掉

1、首先下載owc11 COM組件

http://www.microsoft.com/downloads/details.aspx?FamilyID=7287252c-402e-4f72-97a5-e0fd290d4b76displaylang=en

2、注冊owc11

  在工程中添加 C:/Program Files/Common Files/Microsoft Shared/Web Components/11  文件下的owc11.dll引用

  3、在工程中添加

  using OWC11;

  4、開始coding  舉例如下:

復(fù)制代碼 代碼如下:

   public class ChartFactory
  {
  public ChartFactory()
  {
  InitTypeMap();
  //
  // TODO: 在此處添加構(gòu)造函數(shù)邏輯
  //
  }
  protected System.Web.UI.WebControls.Image imgHondaLineup;
  private string[] chartCategoriesArr;
  private string[] chartValuesArr;
  private OWC11.ChartChartTypeEnum chartType =  OWC11.ChartChartTypeEnum.chChartTypeColumn3D;//默認(rèn)值
  private static Hashtable chartMap = new Hashtable();
  private static string chartTypeCh = "垂直柱狀圖" ;
  private static string chartTitle = "";

  private void InitTypeMap()
  {
  chartMap.Clear();
  OWC11.ChartChartTypeEnum[] chartTypes = new OWC11.ChartChartTypeEnum[]{ ChartChartTypeEnum.chChartTypeColumnClustered,
  ChartChartTypeEnum.chChartTypeColumn3D,
  ChartChartTypeEnum.chChartTypeBarClustered,
  ChartChartTypeEnum.chChartTypeBar3D,
  ChartChartTypeEnum.chChartTypeArea,
  ChartChartTypeEnum.chChartTypeArea3D,
  ChartChartTypeEnum.chChartTypeDoughnut,
  ChartChartTypeEnum.chChartTypeLineStacked,
  ChartChartTypeEnum.chChartTypeLine3D,
  ChartChartTypeEnum.chChartTypeLineMarkers,
  ChartChartTypeEnum.chChartTypePie,
  ChartChartTypeEnum.chChartTypePie3D,
   ChartChartTypeEnum.chChartTypeRadarSmoothLine,
  ChartChartTypeEnum.chChartTypeSmoothLine};

 

  string[] chartTypesCh = new string [] {"垂直柱狀統(tǒng)計(jì)圖","3D垂直柱狀統(tǒng)計(jì)圖","水平柱狀統(tǒng)計(jì)圖","3D水平柱狀統(tǒng)計(jì)圖","區(qū)域統(tǒng)計(jì)圖","3D區(qū)域統(tǒng)計(jì)圖","中空餅圖","折線統(tǒng)計(jì)圖","3D折線統(tǒng)計(jì)圖","折線帶點(diǎn)統(tǒng)計(jì)圖","餅圖","3D餅圖","網(wǎng)狀統(tǒng)計(jì)圖","弧線統(tǒng)計(jì)圖"};


   for(int i=0;ichartTypes.Length;i++)
  {
  chartMap.Add(chartTypesCh[i],chartTypes[i]);
  }
  }
  public ChartSpaceClass BuildCharts ()
  {
  string chartCategoriesStr = String.Join ("/t", chartCategoriesArr);
  string chartValuesStr = String.Join ("/t", chartValuesArr);

OWC11.ChartSpaceClass       oChartSpace = new OWC11.ChartSpaceClass ();

  // ------------------------------------------------------------------------
  // Give pie and doughnut charts a legend on the bottom. For the rest of
  // them let the control figure it out on its own.
  // ------------------------------------------------------------------------

  chartType = (ChartChartTypeEnum)chartMap[chartTypeCh];

  if (chartType == ChartChartTypeEnum.chChartTypePie ||
  chartType == ChartChartTypeEnum.chChartTypePie3D ||
  chartType == ChartChartTypeEnum.chChartTypeDoughnut)
  {
  oChartSpace.HasChartSpaceLegend = true;
  oChartSpace.ChartSpaceLegend.Position = ChartLegendPositionEnum.chLegendPositionBottom;
  }

  oChartSpace.Border.Color = "blue";
  oChartSpace.Charts.Add(0);
  oChartSpace.Charts[0].HasTitle = true;
  oChartSpace.Charts[0].Type = chartType;
  oChartSpace.Charts[0].ChartDepth = 125;
  oChartSpace.Charts[0].AspectRatio = 80;
  oChartSpace.Charts[0].Title.Caption = chartTitle;
  oChartSpace.Charts[0].Title.Font.Bold = true;

  oChartSpace.Charts[0].SeriesCollection.Add(0);
  oChartSpace.Charts[0].SeriesCollection[0].DataLabelsCollection.Add ();

  // ------------------------------------------------------------------------
  // If you're charting a pie or a variation thereof percentages make a lot
  // more sense than values...
  // ------------------------------------------------------------------------
   if (chartType == ChartChartTypeEnum.chChartTypePie ||
  chartType == ChartChartTypeEnum.chChartTypePie3D ||
  chartType == ChartChartTypeEnum.chChartTypeDoughnut)
  {
  oChartSpace.Charts[0].SeriesCollection[0].DataLabelsCollection[0].HasPercentage = true;
  oChartSpace.Charts[0].SeriesCollection[0].DataLabelsCollection[0].HasValue = false;
  }
  // ------------------------------------------------------------------------
  // Not so for other chart types where values have more meaning than
  // percentages.
  // ------------------------------------------------------------------------
  else
  {
  oChartSpace.Charts[0].SeriesCollection[0].DataLabelsCollection[0].HasPercentage = false;
  oChartSpace.Charts[0].SeriesCollection[0].DataLabelsCollection[0].HasValue = true;
  }
  
  // ------------------------------------------------------------------------
  // Plug your own visual bells and whistles here
  // ------------------------------------------------------------------------
  oChartSpace.Charts[0].SeriesCollection[0].Caption = String.Empty;
  oChartSpace.Charts[0].SeriesCollection[0].DataLabelsCollection[0].Font.Name = "verdana";
  oChartSpace.Charts[0].SeriesCollection[0].DataLabelsCollection[0].Font.Size = 10;
  oChartSpace.Charts[0].SeriesCollection[0].DataLabelsCollection[0].Font.Bold = true;
  oChartSpace.Charts[0].SeriesCollection[0].DataLabelsCollection[0].Font.Color = "red";
  oChartSpace.Charts[0].SeriesCollection[0].DataLabelsCollection[0].Position = ChartDataLabelPositionEnum.chLabelPositionCenter;
  
  if (chartType == ChartChartTypeEnum.chChartTypeBarClustered ||
  chartType == ChartChartTypeEnum.chChartTypeBar3D ||
  chartType == ChartChartTypeEnum.chChartTypeColumnClustered ||
  chartType == ChartChartTypeEnum.chChartTypeColumn3D)
  {
  oChartSpace.Charts[0].SeriesCollection[0].DataLabelsCollection[0].Position = ChartDataLabelPositionEnum.chLabelPositionOutsideEnd;
  }
  
  oChartSpace.Charts[0].SeriesCollection[0].SetData (OWC11.ChartDimensionsEnum.chDimCategories,
  Convert.ToInt32(OWC11.ChartSpecialDataSourcesEnum.chDataLiteral), chartCategoriesStr);


oChartSpace.Charts[0].SeriesCollection[0].SetData (OWC11.ChartDimensionsEnum.chDimValues,
  Convert.ToInt32(OWC11.ChartSpecialDataSourcesEnum.chDataLiteral), chartValuesStr);

  return oChartSpace;
  }

  #region  屬性設(shè)置
  public string[] chartCategoriesArrValue
  {
  get
  {
  return chartCategoriesArr;
  }
  set
  {
  chartCategoriesArr = value;
  }
  }

  public string[] chartValuesArrValue
  {
  get
  {
  return chartValuesArr;

   }
  set
  {
  chartValuesArr = value;
  }
  }
  public string chartTypeValue
  {
  get
  {
  return chartTypeCh;
  }
  set
  {
  chartTypeCh = value;
  }
  }
  public string chartTitleValue
  {
  get
  {
  return chartTitle;
  }
  set
  {
  chartTitle = value;
  }
  }
  #endregion
  }

  //調(diào)用   首先需要在頁面上放置一個(gè)Image來顯示產(chǎn)生的統(tǒng)計(jì)圖

  public void ShowChart()
  {

  //初始化賦值
  chartFactory.chartCategoriesArrValue = chartCategories;
  chartFactory.chartValuesArrValue = chartValues;
  chartFactory.chartTitleValue = chartTitle;
  chartFactory.chartTypeValue = chartType;

  OWC11.ChartSpaceClass oChartSpace = chartFactory.BuildCharts();
  string path = Server.MapPath(".") + @"/images/Chart.jpeg";  //產(chǎn)生圖片并保存 頁可以是png gif圖片
  oChartSpace.ExportPicture(path,"jpeg", 745, 500);
  Image1.ImageUrl = path;  // 顯示統(tǒng)計(jì)圖
  }

  // 保存統(tǒng)計(jì)圖請參照上一篇文章

  //由于每次生成的統(tǒng)計(jì)圖都會(huì)覆蓋原來的圖片所以有必要的話可以用日期加時(shí)間的方式來作為圖片的名字,但是這樣將會(huì)產(chǎn)生很多圖片需及時(shí)處理,如不需要只需取同名覆蓋原來圖片即可。

您可能感興趣的文章:
  • 詳解高效而穩(wěn)定的企業(yè)級.NET Office 組件Spire(.NET組件介紹之二)
  • .NET實(shí)現(xiàn)在網(wǎng)頁中預(yù)覽Office文件的3個(gè)方法
  • WinForm中如何預(yù)覽Office文件

標(biāo)簽:山西 牡丹江 天門 嘉興 景德鎮(zhèn) 泰州 通遼

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《asp.net中調(diào)用Office來制作3D統(tǒng)計(jì)圖的實(shí)例代碼》,本文關(guān)鍵詞  asp.net,中,調(diào)用,Office,來,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《asp.net中調(diào)用Office來制作3D統(tǒng)計(jì)圖的實(shí)例代碼》相關(guān)的同類信息!
  • 本頁收集關(guān)于asp.net中調(diào)用Office來制作3D統(tǒng)計(jì)圖的實(shí)例代碼的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章