Excel中的图表能够将数据可视化,方便我们比较分析数据。但也有一定的局限,例如:不能够直接从图表中读出原来数据的准确值。Excel提供的解决方案是,在图表下方添加一个模拟运算表,即在坐标轴下方添加包含建表时所依照的数据的表格。本文旨在介绍通过免费的Free Spire.XLS在C#独立创建Excel文件,添加数据,生成图表,并添加模拟运算表。

需要使用的命名空间:

  1. using Spire.Xls;
  2.  
  3. using System.Drawing;

步骤详解:

步骤1:创建Excel文件,添加表单。

  1.             Workbook workbook = new Workbook();
  2.  
  3.             workbook.CreateEmptySheets();
  4.  
  5.             Worksheet sheet = workbook.Worksheets[];
 

步骤二:为单元格添加样本数据,用于一下不生成图表。

  1.             sheet.Name = "Demo";
  2.  
  3.             sheet.Range["A1"].Value = "月份";
  4.  
  5.             sheet.Range["A2"].Value = "一月";
  6.  
  7.             sheet.Range["A3"].Value = "二月";
  8.  
  9.             sheet.Range["A4"].Value = "三月";
  10.  
  11.             sheet.Range["A5"].Value = "四月";
  12.  
  13.             sheet.Range["A6"].Value = "五月";
  14.  
  15.             sheet.Range["A7"].Value = "六月";
  16.  
  17.             sheet.Range["B1"].Value = "小王";
  18.  
  19.             sheet.Range["B2"].NumberValue = 3.3;
  20.  
  21.             sheet.Range["B3"].NumberValue = 2.5;
  22.  
  23.             sheet.Range["B4"].NumberValue = 2.0;
  24.  
  25.             sheet.Range["B5"].NumberValue = 3.7;
  26.  
  27.             sheet.Range["B6"].NumberValue = 4.5;
  28.  
  29.             sheet.Range["B7"].NumberValue = 4.0;
  30.  
  31.             sheet.Range["C1"].Value = "小新";
  32.  
  33.             sheet.Range["C2"].NumberValue = 3.8;
  34.  
  35.             sheet.Range["C3"].NumberValue = 3.2;
  36.  
  37.             sheet.Range["C4"].NumberValue = 1.7;
  38.  
  39.             sheet.Range["C5"].NumberValue = 3.5;
  40.  
  41.             sheet.Range["C6"].NumberValue = 4.5;
  42.  
  43.             sheet.Range["C7"].NumberValue = 4.3;
  44.  
  45.             sheet.Range["D1"].Value = "小白";
  46.  
  47.             sheet.Range["D2"].NumberValue = 3.0;
  48.  
  49.             sheet.Range["D3"].NumberValue = 2.8;
  50.  
  51.             sheet.Range["D4"].NumberValue = 3.5;
  52.  
  53.             sheet.Range["D5"].NumberValue = 2.3;
  54.  
  55.             sheet.Range["D6"].NumberValue = 3.3;
  56.  
  57.             sheet.Range["D7"].NumberValue = 3.8;

步骤三:利用步骤二填充的数据,生成柱形图,设置其在Excel中的位置,图表名称等。

  1.             Chart chart = sheet.Charts.Add(ExcelChartType.Column3DClustered);
  2.             chart.DataRange = sheet.Range["B1:D7"];
  3.             chart.SeriesDataFromRange = false;
  4.             chart.TopRow = ;
  5.             chart.BottomRow = ;
  6.             chart.LeftColumn = ;
  7.             chart.RightColumn =;
  8.             chart.ChartTitle = "带模拟数据表的柱状图示例";
  9.             chart.ChartTitleArea.IsBold = true;
  10.             chart.ChartTitleArea.Size = ;
  11.             Spire.Xls.Charts.ChartSerie cs1 = chart.Series[];      
  12.             cs1.CategoryLabels = sheet.Range["A2:A7"];
 

步骤四:为柱状图添加模拟数据表。

  1.            chart.HasDataTable = true;

步骤五:保存文档为2010版Excel。

  1.            workbook.SaveToFile("S3.xlsx", ExcelVersion.Version2010);
代码运行后效果截图:

完整代码:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using Spire.Xls;
  6. using System.Drawing;
  7.  
  8. namespace ConsoleApplication2
  9. {
  10.     class Program
  11.     {
  12.         static void Main(string[] args)
  13.         {
  14.             Workbook workbook = new Workbook();
  15.             workbook.CreateEmptySheets();
  16.             Worksheet sheet = workbook.Worksheets[];
  17.  
  18.             sheet.Name = "Demo";
  19.             sheet.Range["A1"].Value = "月份";
  20.             sheet.Range["A2"].Value = "一月";
  21.             sheet.Range["A3"].Value = "二月";
  22.             sheet.Range["A4"].Value = "三月";
  23.             sheet.Range["A5"].Value = "四月";
  24.             sheet.Range["A6"].Value = "五月";
  25.             sheet.Range["A7"].Value = "六月";
  26.             sheet.Range["B1"].Value = "小王";
  27.             sheet.Range["B2"].NumberValue = 3.3;
  28.             sheet.Range["B3"].NumberValue = 2.5;
  29.             sheet.Range["B4"].NumberValue = 2.0;
  30.             sheet.Range["B5"].NumberValue = 3.7;
  31.             sheet.Range["B6"].NumberValue = 4.5;
  32.             sheet.Range["B7"].NumberValue = 4.0;
  33.             sheet.Range["C1"].Value = "小新";
  34.             sheet.Range["C2"].NumberValue = 3.8;
  35.             sheet.Range["C3"].NumberValue = 3.2;
  36.             sheet.Range["C4"].NumberValue = 1.7;
  37.             sheet.Range["C5"].NumberValue = 3.5;
  38.             sheet.Range["C6"].NumberValue = 4.5;
  39.             sheet.Range["C7"].NumberValue = 4.3;
  40.             sheet.Range["D1"].Value = "小白";
  41.             sheet.Range["D2"].NumberValue = 3.0;
  42.             sheet.Range["D3"].NumberValue = 2.8;
  43.             sheet.Range["D4"].NumberValue = 3.5;
  44.             sheet.Range["D5"].NumberValue = 2.3;
  45.             sheet.Range["D6"].NumberValue = 3.3;
  46.             sheet.Range["D7"].NumberValue = 3.8;
  47.             
  48.             Chart chart = sheet.Charts.Add(ExcelChartType.Column3DClustered);
  49.             chart.DataRange = sheet.Range["B1:D7"];
  50.             chart.SeriesDataFromRange = false;
  51.             chart.TopRow = ;
  52.             chart.BottomRow = ;
  53.             chart.LeftColumn = ;
  54.             chart.RightColumn =;
  55.             chart.ChartTitle = "带模拟数据表的柱状图示例";
  56.             chart.ChartTitleArea.IsBold = true;
  57.             chart.ChartTitleArea.Size = ;
  58.             Spire.Xls.Charts.ChartSerie cs1 = chart.Series[];      
  59.             cs1.CategoryLabels = sheet.Range["A2:A7"];
  60.  
  61.             chart.HasDataTable = true;
  62.         
  63.             workbook.SaveToFile("S3.xlsx", ExcelVersion.Version2010);
  64.             System.Diagnostics.Process.Start("S3.xlsx");
  65.         }
  66.     }
  67. }

C# Excel 为图表添加模拟运算表的更多相关文章

  1. C# Excel 为图表添加趋势线、误差线

    Excel图表能够将数据可视化,在图表中另行添加趋势线和误差线,可对数据进行进一步的数据分析和统计的可视化处理.Excel中的趋势线可用于趋势预测/回归分析,共6中类型:指数(X),线性(L),对数( ...

  2. Excel技巧--图表添加平均线为指标

    如上图,如果在柱状图有一平均指标线,就能很直观地显示各柱状值是否高于或低于平均值这个指标. 添加方法: (1)为表格制作一个柱状图: 2.对图表点右键,菜单选择“更改图表类型”.对话框如下选择: 3. ...

  3. C# 添加、修改以及删除Excel迷你图表的方法

    Excel表格中的迷你图表能够直观地向我们展示出数据的变化趋势.本文将介绍C#如何实现为表格数据生成迷你图表,以及修改和删除迷你图表的方法.下面将详细讲述. 所用组件工具:Spire.XLS for ...

  4. [转] C#操作EXCEL,生成图表的全面应用

    gailzhao 原文 关于C#操作EXCEL,生成图表的全面应用 近来我在开发一个运用C#生成EXCEL文档的程序,其中要根据数据生成相应的图表,该图表对颜色和格式都有严格的要求,在百度和谷歌中搜索 ...

  5. Excel催化剂图表系列之品味IBCS瀑布图观察企业利润构成

    IBCS图表,每个细节都值得反复琢磨参悟,此篇给大家送上详尽的瀑布图方式下的利润数据观察.请不要拿Excel2016版提供的瀑布图与IBCS版的瀑布图作对比,那完全不是一个级别的,可以类比为拿一辆经济 ...

  6. Excel催化剂图表系列之一键完成IBCS国际商业标准图表

    在数据分析领域,最后一公里的图表输出,是一片十分广阔的领域.一直以来,笔者深知不是这一方面的能手,学习上也仅仅是浅尝而止.没有往其深入研究并有所产出.很幸运地在数据圈子能够结识到其他的志同道合的伙伴, ...

  7. .Net模拟提交表单

    2016-09-0210:49:20 以中邮速递API为服务接口,由于提交方式为表单提交,我要获取返回值来处理其他业务,所以一开始尝试采用Js后台获取返回值,但是涉及到跨域请求限制问题,那边服务端接口 ...

  8. js_ajax模拟form表单提交_多文件上传_支持单个删除

    需求场景: 用一个input type="file"按钮上传多张图片,可多次上传,可单独删除,最后使用ajax模拟form表单提交功能提交到指定方法中: 问题:由于只有一个file ...

  9. js插件---在线类似excel生成图表插件解决方案

    js插件---在线类似excel生成图表插件解决方案 一.总结 一句话总结:google比百度好用多了,多用google google js editable table jquery 双向绑定 这种 ...

随机推荐

  1. 解决IE6/IE7/IE8不支持before,after问题

    对从事web开发的朋友来讲,低版本的IE永远是一个痛点,不支持最新技术(如css3,html5). 在现在web开发中使用图标字体已经很广泛,如Font Awesome,Bootstrap等,字体图片 ...

  2. git 常用操作命令

    A. 新建Git仓库,创建新文件夹git init B. 添加文件到git索引git add <filename>  --- 单个文件添加git add * --- 全部文件添加 C. 提 ...

  3. Nginx 配置从零开始

    作为一个 nginx 的初学者记录一下从零起步的点滴. 基本概念 Nginx 最常的用途是提供反向代理服务,那么什么反向代理呢?正向代理相信很多大陆同胞都在这片神奇的土地上用过了,原理大致如下图: 代 ...

  4. 更加精确的定时器:dispatch_source_t

    在使用定时器时,我们经常使用NSTimer,但是由于NSTimer会受RunLoop影响,当RunLoop处理的任务很多时,就会导致NSTimer的精度降低,所以在一些对定时器精度要求很高的情况下,应 ...

  5. 如何在arcmap中调试addin或者插件

    1. 首先,在arcmap中,依次点击“自定义”->"加载项管理器",加载dll或者tlb文件 2. 其次,在vs中,依次点击“工具”->“附加到进程",在对 ...

  6. $.load()的用法

    jquery load 事件用法 jquery load 事件用法 如果绑定给window对象,则会在所有内容加载后触发,包括窗口,框架,对象和图像.如果绑定在元素上,则当元素的内容加载完毕后触发. ...

  7. linux命令初识

    一.查看当前的目录文件 ls  demo   查看demo目录下的所有文件 ls  -l  demo/test.txt   --查看指定目录(test.txt)的详细内容 二.复制文件 cp   or ...

  8. Eclipse自动补全设置

    如果你用过Visual Studio的自动补全功能后,再来用eclipse的自动补全功能,相信大家会有些许失望. 但是eclipse其实是非常强大的,eclipse的自动补全没有VS那么好是因为ecl ...

  9. Mac上开启Web服务

    $ sudo apachectl start$ httpd -v /Library/WebServer/Documents

  10. MySQL的特点

    MySQL的特点 CPU特点 内存特点 磁盘特点 分析