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

需要使用的命名空间:

using Spire.Xls;

using System.Drawing;

步骤详解:

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

            Workbook workbook = new Workbook();

            workbook.CreateEmptySheets();

            Worksheet sheet = workbook.Worksheets[];
 

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

            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 = ;
            chart.BottomRow = ;
            chart.LeftColumn = ;
            chart.RightColumn =;
            chart.ChartTitle = "带模拟数据表的柱状图示例";
            chart.ChartTitleArea.IsBold = true;
            chart.ChartTitleArea.Size = ;
            Spire.Xls.Charts.ChartSerie cs1 = chart.Series[];      
            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();
            Worksheet sheet = workbook.Worksheets[];             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 = ;
            chart.BottomRow = ;
            chart.LeftColumn = ;
            chart.RightColumn =;
            chart.ChartTitle = "带模拟数据表的柱状图示例";
            chart.ChartTitleArea.IsBold = true;
            chart.ChartTitleArea.Size = ;
            Spire.Xls.Charts.ChartSerie cs1 = chart.Series[];      
            cs1.CategoryLabels = sheet.Range["A2:A7"];             chart.HasDataTable = true;
        
            workbook.SaveToFile("S3.xlsx", ExcelVersion.Version2010);
            System.Diagnostics.Process.Start("S3.xlsx");
        }
    }
}

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. bzoj 3821: 玄学

    题目大意 有一个长度为 n 数列,有若干个事件,事件分为操作和询问两种, 一次操作是把数列[l...r] 区间中的每个元素x变成 ax + b mod p. 一次询问是询问 执行了 第l 次到第r次操 ...

  2. java-JDBC从数据库中读取数据并进行日期民族男女的转换

    代码如下: package com.itnba.maya.mysql; import java.sql.*; import java.text.SimpleDateFormat; public cla ...

  3. Kafka设计解析(三)- Kafka High Availability (下)

    本文转发自Jason’s Blog,原文链接 http://www.jasongj.com/2015/06/08/KafkaColumn3 摘要 本文在上篇文章基础上,更加深入讲解了Kafka的HA机 ...

  4. Java环境设置

    win7/win8下JDK环境变量设置方法 首先需要到官网上下载JDK这款软件,本人下载的是jdk-7u40-windows-i586版本,安装完成显示jdk1.7.0_67. 其次选择安装路径.本人 ...

  5. java基本类型的默认值及其取值范围

  6. Python 比较两个字符串大小

    python 2中,有cmp(a,b)函数,用于比较两个字符串的大小. 如 >>>a='abc' >>>b='abd' >>>print cmp( ...

  7. js判断只能输入数字和只能输入

    JS判断只能是数字和小数点 1.文本框只能输入数字代码(小数点也不能输入) <input onkeyup="this.value=this.value.replace(/\D/g,'' ...

  8. 注册GitHub和源程序版本管理软件和项目管理软件的优缺点

    目前市面上主要源程序管理软件主要有:Microsoft TFS(Team Foundation Server).GitHub.Trac.BUGZILLA.Apple XCode.SVN Microso ...

  9. java学习之面向对象(2)

    在描述事物的时候,该事物已存在就具备的一些内容,这是我们就可以把它们都定义在构造函数中,那么什么是构造函数呢? 构造函数就是构建创造对象时调用的函数,它可以给对象进行初始化.构造函数与类名相同,第一个 ...

  10. 开源消息队列:NetMQ

    NetMQ 是  ZeroMQ的C#移植版本. ZeroMQ是一个轻量级的消息内核,它是对标准socket接口的扩展.它提供了一种异步消息队列,多消息模式,消息过滤(订阅),对多种传输协议的无缝访问. ...