亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

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

2019-11-18 19:33:22
字體:
來源:轉載
供稿:網友

   1、首先下載owc11 COM組件

       [點擊下載]

  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;  // 顯示統計圖
  }
 

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

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品精品视频一区二区三区| 日韩高清电影好看的电视剧电影| 国产精品视频免费在线观看| 2020欧美日韩在线视频| 538国产精品视频一区二区| 国产精品第1页| 亚洲精品中文字| 中文字幕在线日韩| 亚洲精品成人av| 国产亚洲aⅴaaaaaa毛片| 国产91精品久久久久久久| 久久久精品美女| 精品偷拍各种wc美女嘘嘘| 日韩视频免费大全中文字幕| 亚洲人成网7777777国产| 欧美精品做受xxx性少妇| 日本乱人伦a精品| 宅男66日本亚洲欧美视频| 伊是香蕉大人久久| 亚洲天堂av高清| www.国产精品一二区| 欧美最猛性xxxxx亚洲精品| 一区二区三区国产在线观看| 激情久久av一区av二区av三区| 国内免费久久久久久久久久久| 九九热精品视频| 国产欧美日韩免费看aⅴ视频| 午夜精品久久久久久99热软件| 精品国产一区二区三区久久久狼| 国产精品美女视频网站| 在线观看精品自拍私拍| 精品亚洲一区二区| 91免费欧美精品| 97热在线精品视频在线观看| 成人精品视频99在线观看免费| 日韩中文字幕在线精品| 亚洲自拍欧美色图| 中文字幕亚洲欧美一区二区三区| 国产精品视频免费在线| 精品国产一区二区三区久久久狼| 一区国产精品视频| 亚洲女人天堂视频| 国产亚洲在线播放| 在线播放国产精品| 国产精品久久久久免费a∨大胸| 一本色道久久88亚洲综合88| 亚洲第一页在线| 欧美日韩在线第一页| 一区二区三区动漫| 国外色69视频在线观看| 亚洲高清一二三区| 亚洲欧美在线一区二区| 热久久这里只有| 日韩欧美亚洲成人| 色综合久久天天综线观看| 欧美影院成年免费版| 国产精品欧美日韩| 国产一区二区在线免费| 亚洲精品在线91| 亚洲国产高清福利视频| 国产成人精品久久亚洲高清不卡| 91亚洲精品在线| 日韩av网址在线| 国产精品久久久久77777| 国产精品久久久久久久久久东京| 国产精品久久色| 欧美国产日产韩国视频| 欧美黑人视频一区| 久久九九热免费视频| 亚洲精品欧美一区二区三区| 日韩hd视频在线观看| 日韩**中文字幕毛片| 国产成人鲁鲁免费视频a| 在线观看91久久久久久| 在线成人一区二区| 不卡av日日日| 久久精品视频在线播放| 中文字幕日韩精品在线| 国产91在线播放精品91| 日本欧美中文字幕| 日韩欧美国产高清91| 最近2019中文字幕一页二页| 欧美一区三区三区高中清蜜桃| 性色av一区二区三区红粉影视| 成人av色在线观看| 亚洲三级免费看| 国产精品久久久久7777婷婷| 中文字幕日本精品| 国产免费亚洲高清| 91av视频在线免费观看| 国产成+人+综合+亚洲欧美丁香花| 久久久精品2019中文字幕神马| 精品中文字幕久久久久久| 91成人在线观看国产| 久久久久久久av| 国产精品揄拍500视频| 国产精品福利久久久| 97超碰色婷婷| 欧美丝袜美女中出在线| 欧美激情一区二区三区高清视频| 97在线视频免费播放| 欧美日韩性视频| 黑人巨大精品欧美一区二区免费| 亚洲视频网站在线观看| 一区二区欧美激情| 欧美孕妇与黑人孕交| 色综合老司机第九色激情| 日韩欧中文字幕| 成人黄色在线播放| 不卡在线观看电视剧完整版| 亚洲精品国产精品国产自| 国产一区红桃视频| 国产精品xxx视频| 久久99精品视频一区97| 影音先锋欧美在线资源| 久久久国产视频| 色妞在线综合亚洲欧美| 欧美日韩高清在线观看| 国产精品亚洲第一区| 久久久久久亚洲精品中文字幕| 久久久av一区| 在线观看91久久久久久| 欧美人成在线视频| www.久久撸.com| 成人精品一区二区三区| 九九热这里只有精品免费看| 91国内精品久久| 国产精品黄色影片导航在线观看| 国内免费久久久久久久久久久| 日韩亚洲综合在线| 在线丨暗呦小u女国产精品| 久久成人在线视频| 国模精品系列视频| 日韩中文字幕国产精品| 欧美国产日韩在线| 久久久久久久久久久91| 欧美激情videoshd| 国产精品91久久| 日韩av色在线| 97婷婷大伊香蕉精品视频| 欧美成人激情在线| 亚洲娇小xxxx欧美娇小| 黑人欧美xxxx| 中文字幕欧美日韩精品| 欧美精品九九久久| 国产精品久久久久久久久免费| 亚洲精品天天看| 久久99久久99精品免观看粉嫩| 欧洲精品久久久| 国产精品99久久久久久久久| 国产精品久久二区| 午夜精品一区二区三区在线视频| 亚洲国产高清高潮精品美女| 亚洲人线精品午夜| 国产精品美乳一区二区免费| 97精品欧美一区二区三区| 国产精品海角社区在线观看| 亚洲人午夜色婷婷| 美女av一区二区三区| 精品一区二区三区三区| 日韩欧美在线视频| 91福利视频网| 中文字幕亚洲二区| 国产一区二区三区在线播放免费观看|