国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

asp.net中調用Office來制作3D統計圖

2024-07-10 12:56:04
字體:
來源:轉載
供稿:網友

1、首先下載owc11 com組件

http://www.microsoft.com/downloads/details.aspx?familyid=7287252c-402e-4f72-97a5-e0fd290d4b76&displaylang=en

2、注冊owc11

  在工程中添加 c:/program files/common files/microsoft shared/web components/11  文件下的owc11.dll引用

  3、在工程中添加

  using owc11;

  4、開始coding  舉例如下:


   public class chartfactory
  {
  public chartfactory()
  {
  inittypemap();
  //
  // todo: 在此處添加構造函數邏輯
  //
  }
  protected system.web.ui.webcontrols.image imghondalineup;
  private string[] chartcategoriesarr;
  private string[] chartvaluesarr;
  private owc11.chartcharttypeenum charttype =  owc11.chartcharttypeenum.chcharttypecolumn3d;//默認值
  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 [] {"垂直柱狀統計圖","3d垂直柱狀統計圖","水平柱狀統計圖","3d水平柱狀統計圖","區域統計圖","3d區域統計圖","中空餅圖","折線統計圖","3d折線統計圖","折線帶點統計圖","餅圖","3d餅圖","網狀統計圖","弧線統計圖"};


   for(int i=0;i<charttypes.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  屬性設置
  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
  }

  //調用   首先需要在頁面上放置一個image來顯示產生的統計圖

  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";  //產生圖片并保存 頁可以是png gif圖片
  ochartspace.exportpicture(path,"jpeg", 745, 500);
  image1.imageurl = path;  // 顯示統計圖
  } 

  // 保存統計圖請參照上一篇文章

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泽普县| 昌图县| 婺源县| 农安县| 霸州市| 武安市| 清远市| 民丰县| 宝兴县| 耒阳市| 上思县| 九龙坡区| 理塘县| 南平市| 淮滨县| 年辖:市辖区| 台安县| 全州县| 图木舒克市| 双城市| 环江| 鲁甸县| 罗定市| 东乌| 墨竹工卡县| 广南县| 繁峙县| 乐都县| 楚雄市| 依兰县| 罗田县| 乐山市| 东乡| 盐亭县| 祁连县| 岚皋县| 余庆县| 天峨县| 太白县| 阿拉善左旗| 芮城县|