C# Excel 為圖表添加模擬運算表


  Excel中的圖表能夠將數據可視化,方便我們比較分析數據。但也有一定的局限,例如:不能夠直接從圖表中讀出原來數據的准確值。Excel提供的解決方案是,在圖表下方添加一個模擬運算表,即在坐標軸下方添加包含建表時所依照的數據的表格。本文旨在介紹通過免費的Free Spire.XLS在C#獨立創建Excel文件,添加數據,生成圖表,並添加模擬運算表。

需要使用的命名空間:

using Spire.Xls;
using System.Drawing;

 

步驟詳解:

 

步驟1:創建Excel文件,添加表單。

            Workbook workbook =  new Workbook();
            workbook.CreateEmptySheets( 1);
            Worksheet sheet = workbook.Worksheets[ 0];

 

步驟二:為單元格添加樣本數據,用於一下不生成圖表。

 

            sheet.Name =  " Demo ";
            sheet.Range[ " A1 "].Value =  " 月份 ";
            sheet.Range[ " A2 "].Value =  " 一月 ";
            sheet.Range[ " A3 "].Value =  " 二月 ";
            sheet.Range[ " A4 "].Value =  " 三月 ";
            sheet.Range[ " A5 "].Value =  " 四月 ";
            sheet.Range[ " A6 "].Value =  " 五月 ";
            sheet.Range[ " A7 "].Value =  " 六月 ";
            sheet.Range[ " B1 "].Value =  " 小王 ";
            sheet.Range[ " B2 "].NumberValue =  3.3;
            sheet.Range[ " B3 "].NumberValue =  2.5;
            sheet.Range[ " B4 "].NumberValue =  2.0;
            sheet.Range[ " B5 "].NumberValue =  3.7;
            sheet.Range[ " B6 "].NumberValue =  4.5;
            sheet.Range[ " B7 "].NumberValue =  4.0;
            sheet.Range[ " C1 "].Value =  " 小新 ";
            sheet.Range[ " C2 "].NumberValue =  3.8;
            sheet.Range[ " C3 "].NumberValue =  3.2;
            sheet.Range[ " C4 "].NumberValue =  1.7;
            sheet.Range[ " C5 "].NumberValue =  3.5;
            sheet.Range[ " C6 "].NumberValue =  4.5;
            sheet.Range[ " C7 "].NumberValue =  4.3;
            sheet.Range[ " D1 "].Value =  " 小白 ";
            sheet.Range[ " D2 "].NumberValue =  3.0;
            sheet.Range[ " D3 "].NumberValue =  2.8;
            sheet.Range[ " D4 "].NumberValue =  3.5;
            sheet.Range[ " D5 "].NumberValue =  2.3;
            sheet.Range[ " D6 "].NumberValue =  3.3;
            sheet.Range[ " D7 "].NumberValue =  3.8;


步驟三:利用步驟二填充的數據,生成柱形圖,設置其在Excel中的位置,圖表名稱等。

            Chart chart = sheet.Charts.Add(ExcelChartType.Column3DClustered);
            chart.DataRange = sheet.Range[ " B1:D7 "];
            chart.SeriesDataFromRange =  false;
            chart.TopRow =  7;
            chart.BottomRow =  28;
            chart.LeftColumn =  3;
            chart.RightColumn = 11;
            chart.ChartTitle =  " 帶模擬數據表的柱狀圖示例 ";
            chart.ChartTitleArea.IsBold =  true;
            chart.ChartTitleArea.Size =  12;
            Spire.Xls.Charts.ChartSerie cs1 = chart.Series[ 0];      
            cs1.CategoryLabels = sheet.Range[ " A2:A7 "];
 

步驟四:為柱狀圖添加模擬數據表。

           chart.HasDataTable =  true;

 

步驟五:保存文檔為2010版Excel。

           workbook.SaveToFile( " S3.xlsx ", ExcelVersion.Version2010);

 

代碼運行后效果截圖:

 


 

 完整代碼:

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Spire.Xls;
using System.Drawing;

namespace ConsoleApplication2
{
     class Program
    {
         static  void Main( string[] args)
        {
            Workbook workbook =  new Workbook();
            workbook.CreateEmptySheets( 1);
            Worksheet sheet = workbook.Worksheets[ 0];

            sheet.Name =  " Demo ";
            sheet.Range[ " A1 "].Value =  " 月份 ";
            sheet.Range[ " A2 "].Value =  " 一月 ";
            sheet.Range[ " A3 "].Value =  " 二月 ";
            sheet.Range[ " A4 "].Value =  " 三月 ";
            sheet.Range[ " A5 "].Value =  " 四月 ";
            sheet.Range[ " A6 "].Value =  " 五月 ";
            sheet.Range[ " A7 "].Value =  " 六月 ";
            sheet.Range[ " B1 "].Value =  " 小王 ";
            sheet.Range[ " B2 "].NumberValue =  3.3;
            sheet.Range[ " B3 "].NumberValue =  2.5;
            sheet.Range[ " B4 "].NumberValue =  2.0;
            sheet.Range[ " B5 "].NumberValue =  3.7;
            sheet.Range[ " B6 "].NumberValue =  4.5;
            sheet.Range[ " B7 "].NumberValue =  4.0;
            sheet.Range[ " C1 "].Value =  " 小新 ";
            sheet.Range[ " C2 "].NumberValue =  3.8;
            sheet.Range[ " C3 "].NumberValue =  3.2;
            sheet.Range[ " C4 "].NumberValue =  1.7;
            sheet.Range[ " C5 "].NumberValue =  3.5;
            sheet.Range[ " C6 "].NumberValue =  4.5;
            sheet.Range[ " C7 "].NumberValue =  4.3;
            sheet.Range[ " D1 "].Value =  " 小白 ";
            sheet.Range[ " D2 "].NumberValue =  3.0;
            sheet.Range[ " D3 "].NumberValue =  2.8;
            sheet.Range[ " D4 "].NumberValue =  3.5;
            sheet.Range[ " D5 "].NumberValue =  2.3;
            sheet.Range[ " D6 "].NumberValue =  3.3;
            sheet.Range[ " D7 "].NumberValue =  3.8;
            
            Chart chart = sheet.Charts.Add(ExcelChartType.Column3DClustered);
            chart.DataRange = sheet.Range[ " B1:D7 "];
            chart.SeriesDataFromRange =  false;
            chart.TopRow =  7;
            chart.BottomRow =  28;
            chart.LeftColumn =  3;
            chart.RightColumn = 11;
            chart.ChartTitle =  " 帶模擬數據表的柱狀圖示例 ";
            chart.ChartTitleArea.IsBold =  true;
            chart.ChartTitleArea.Size =  12;
            Spire.Xls.Charts.ChartSerie cs1 = chart.Series[ 0];      
            cs1.CategoryLabels = sheet.Range[ " A2:A7 "];

            chart.HasDataTable =  true;
        
            workbook.SaveToFile( " S3.xlsx ", ExcelVersion.Version2010);
            System.Diagnostics.Process.Start( " S3.xlsx ");
        }
    }
}

 

 

 


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM