首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

C# 使用 OWC 11 產生圖表:安裝、程式碼完整範例與圖表類型枚舉

     編輯:關於C#

OWC 組件安裝

  • 全名:Office Web Components
  • 含 SpreadSheet、Chart、PivotTable、Data Source 組件
  • Office 2003 安裝路徑:C:\Program Files\MSECache\owc11_12\OWC11.msi

專案設定

  1. 加入參考:COM → Microsoft Office Web Components 11.0
  2. 產生 Interop.OWC10.dll(注意版本號差異)
  3. 引用命名空間:using Microsoft.Office.Interop.Owc11;

完整圖表產生程式碼


private void MakeLineChart() {
    // 資料準備
    string[] DataName = { "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日" };
    int[] Data = { 0, 10, 20, 100, 40, 50, 60 };
    int[] Data1 = { 100, 50, 41, 86 };
    int[] Data2 = { 10, 50, 100, 30, 50, 60 };
    
    // 格式化為 OWC 需要的 Tab 分隔字串
    string strCategory = string.Join("\t", DataName) + "\t";
    string strValue = string.Join("\t", Data.Select(x => x.ToString())) + "\t";
    string strValue1 = string.Join("\t", Data1.Select(x => x.ToString())) + "\t";
    string strValue2 = string.Join("\t", Data2.Select(x => x.ToString())) + "\t";
    
    // 建立圖表空間與圖表
    OWC10.ChartSpaceClass mySpace = new OWC10.ChartSpaceClass();
    OWC10.ChChart myChart = mySpace.Charts.Add(0);
    myChart.Type = OWC10.ChartChartTypeEnum.chChartTypeColumnClustered; // 長條圖
    myChart.HasLegend = true;
    myChart.HasTitle = true;
    myChart.Title.Caption = "交易曲線圖";
    
    // 軸標題
    myChart.Axes[0].HasTitle = true; myChart.Axes[0].Title.Caption = "數量";
    myChart.Axes[1].HasTitle = true; myChart.Axes[1].Title.Caption = "日期";
    
    // 第一組資料
    myChart.SeriesCollection.Add(0);
    myChart.SeriesCollection[0].SetData(OWC10.ChartDimensionsEnum.chDimSeriesNames, 
        (int)OWC10.ChartSpecialDataSourcesEnum.chDataLiteral, "購買");
    myChart.SeriesCollection[0].SetData(OWC10.ChartDimensionsEnum.chDimCategories, 
        (int)OWC10.ChartSpecialDataSourcesEnum.chDataLiteral, strCategory);
    myChart.SeriesCollection[0].SetData(OWC10.ChartDimensionsEnum.chDimValues, 
        (int)OWC10.ChartSpecialDataSourcesEnum.chDataLiteral, strValue);
    
    // 第二組資料
    myChart.SeriesCollection.Add(1);
    myChart.SeriesCollection[1].SetData(OWC10.ChartDimensionsEnum.chDimSeriesNames, 
        (int)OWC10.ChartSpecialDataSourcesEnum.chDataLiteral, "出售");
    myChart.SeriesCollection[1].SetData(OWC10.ChartDimensionsEnum.chDimCategories, 
        (int)OWC10.ChartSpecialDataSourcesEnum.chDataLiteral, strCategory);
    myChart.SeriesCollection[1].SetData(OWC10.ChartDimensionsEnum.chDimValues, 
        (int)OWC10.ChartSpecialDataSourcesEnum.chDataLiteral, strValue1);
    
    // 第三組資料
    myChart.SeriesCollection.Add(2);
    myChart.SeriesCollection[2].SetData(OWC10.ChartDimensionsEnum.chDimSeriesNames, 
        (int)OWC10.ChartSpecialDataSourcesEnum.chDataLiteral, "總成交");
    myChart.SeriesCollection[2].SetData(OWC10.ChartDimensionsEnum.chDimCategories, 
        (int)OWC10.ChartSpecialDataSourcesEnum.chDataLiteral, strCategory);
    myChart.SeriesCollection[2].SetData(OWC10.ChartDimensionsEnum.chDimValues, 
        (int)OWC10.ChartSpecialDataSourcesEnum.chDataLiteral, strValue2);
    
    // 匯出 GIF 圖檔
    string strAbsolutePath = Server.MapPath(".") + @"\Images\tempChart.gif";
    mySpace.ExportPicture(strAbsolutePath, "GIF", 300, 300);
    Image1.ImageUrl = "Images/tempChart.gif";
}

圖表類型枚舉對照表

枚舉值中文名稱
chChartTypeColumnClustered垂直柱狀統計圖
chChartTypeColumn3D3D 垂直柱狀統計圖
chChartTypeBarClustered水平柱狀統計圖
chChartTypeBar3D3D 水平柱狀統計圖
chChartTypeArea區域統計圖
chChartTypeArea3D3D 區域統計圖
chChartTypeDoughnut中空餅圖
chChartTypeLineStacked折線統計圖
chChartTypeLine3D3D 折線統計圖
chChartTypeLineMarkers折線帶點統計圖
chChartTypePie餅圖
chChartTypePie3D3D 餅圖
chChartTypeRadarSmoothLine網狀統計圖
chChartTypeSmoothLine弧線統計圖
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved