Excel中 如何使用不连贯的数据来创建图表(C#)
2016-09-23 16:54
756 查看
Excel中如何使用不连贯的数据来创建图表(C#)
我们一般在Excel中添加图表时,是直接选中所有数据区域,然后在点击菜单栏里插入按钮,选中要插入的图表类型,然后Excel会根据你选择的图表类型自动插入图表。像下图这样:
如果不像上图中那样使用所有的数据,只用其中的某几行数据来创建图表呢?这篇文章给大家分享一下如何实现这个功能的方法,这里我使用了一个Excel组件Spire.XLS(你可以从这里下载)。
下图是我的原始Excel文档,我将用第2、3、5、6、8、9行数据来创建图表,为了方便观看我使用的是哪些数据,这里我将第4、7行设置成了空白行,当然你的Excel文档里面可以不用设置空白行。
详细步骤如下:
步骤1:加载Excel文档并获取第一个工作表。
步骤4:保存文档。
效果图:
图表中的网格线不好看?加上下面这句代码让它不显示就OK:
完整代码奉上:
感谢您的阅读!
我们一般在Excel中添加图表时,是直接选中所有数据区域,然后在点击菜单栏里插入按钮,选中要插入的图表类型,然后Excel会根据你选择的图表类型自动插入图表。像下图这样:
如果不像上图中那样使用所有的数据,只用其中的某几行数据来创建图表呢?这篇文章给大家分享一下如何实现这个功能的方法,这里我使用了一个Excel组件Spire.XLS(你可以从这里下载)。
下图是我的原始Excel文档,我将用第2、3、5、6、8、9行数据来创建图表,为了方便观看我使用的是哪些数据,这里我将第4、7行设置成了空白行,当然你的Excel文档里面可以不用设置空白行。
详细步骤如下:
步骤1:加载Excel文档并获取第一个工作表。
Workbook book = new Workbook(); book.LoadFromFile("11班同学半期考试与期末考试总成绩比较表.xlsx"); Worksheet sheet = book.Worksheets[0];步骤2:插入一个条形图表并设置条形图表在工作表中的位置。
Chart chart = sheet.Charts.Add(ExcelChartType.ColumnClustered); chart.SeriesDataFromRange = false; //设置图表位置 chart.LeftColumn = 5; chart.TopRow = 1; chart.RightColumn = 13; chart.BottomRow = 10;步骤3:添加两个系列(Series)到图表,调用XlsRange.AddCombinedRange(CellRange cr)方法来为图表设置多个不连贯的数据范围。
//添加第一个Series var cs1 = (ChartSerie)chart.Series.Add(); cs1.Name = sheet.Range["B1"].Value; cs1.CategoryLabels = sheet.Range["A2:A3"].AddCombinedRange(sheet.Range["A5:A6"]).AddCombinedRange(sheet.Range["A8:A9"]); cs1.Values = sheet.Range["B2:B3"].AddCombinedRange(sheet.Range["B5:B6"]).AddCombinedRange(sheet.Range["B8:B9"]); cs1.SerieType = ExcelChartType.ColumnClustered; //添加第二个Series var cs2 = (ChartSerie)chart.Series.Add(); cs2.Name = sheet.Range["C1"].Value; cs2.CategoryLabels = cs2.CategoryLabels =sheet.Range["A2:A3"].AddCombinedRange(sheet.Range["A5:A6"]).AddCombinedRange(sheet.Range["A8:A9"]); cs2.Values = sheet.Range["C2:C3"].AddCombinedRange(sheet.Range["C5:C6"]).AddCombinedRange(sheet.Range["C8:C9"]); cs2.SerieType = ExcelChartType.ColumnClustered;
步骤4:保存文档。
book.SaveToFile("图表.xlsx", FileFormat.Version2010);
效果图:
图表中的网格线不好看?加上下面这句代码让它不显示就OK:
chart.PrimaryValueAxis.HasMajorGridLines = false;
完整代码奉上:
using Spire.Xls; using Spire.Xls.Charts; namespace 使用不连贯数据创建图表 { class Program { static void Main(string[] args) { Workbook book = newWorkbook(); book.LoadFromFile("11班同学半期考试与期末考试总成绩比较表.xlsx"); Worksheet sheet = book.Worksheets[0]; Chart chart = sheet.Charts.Add(ExcelChartType.ColumnClustered); chart.SeriesDataFromRange = false; //chart.PrimaryValueAxis.HasMajorGridLines = false; chart.LeftColumn = 5; chart.TopRow = 1; chart.RightColumn = 13; chart.BottomRow = 10; var cs1 = (ChartSerie)chart.Series.Add(); cs1.Name = sheet.Range["B1"].Value; cs1.CategoryLabels = sheet.Range["A2:A3"].AddCombinedRange(sheet.Range["A5:A6"]).AddCombinedRange(sheet.Range["A8:A9"]); cs1.Values = sheet.Range["B2:B3"].AddCombinedRange(sheet.Range["B5:B6"]).AddCombinedRange(sheet.Range["B8:B9"]); cs1.SerieType = ExcelChartType.ColumnClustered; var cs2 = (ChartSerie)chart.Series.Add(); cs2.Name = sheet.Range["C1"].Value; cs2.CategoryLabels = sheet.Range["A2:A3"].AddCombinedRange(sheet.Range["A5:A6"]).AddCombinedRange(sheet.Range["A8:A9"]); cs2.Values = sheet.Range["C2:C3"].AddCombinedRange(sheet.Range["C5:C6"]).AddCombinedRange(sheet.Range["C8:C9"]); cs2.SerieType = ExcelChartType.ColumnClustered; chart.ChartTitle = string.Empty; book.SaveToFile("图表.xlsx", FileFormat.Version2010); } } }
感谢您的阅读!
相关文章推荐
- (转)如何使用 Visual C# 2005 或 Visual C# .NET 向 Excel 工作簿传输数据
- 以实例说明如何使用C#从数据库中提取数据,按要求自动生成定制的Excel表格?[转]
- 如何使用 Visual C# 2005 或 Visual C# .NET 向 Excel 工作簿传输数据
- C#中如何在Excel工作表创建混合型图表实例
- 如何使用 Visual C# 2005 或 Visual C# .NET 向 Excel 工作簿传输数据
- 如何使用 ASP.NET、ADO.NET 和 Visual C# .NET 查询和显示 Excel 数据
- 如何使用 Visual C# 2005 或 Visual C# .NET 向 Excel 工作簿传输数据
- Net使用Microsoft.Office.Interop.Excel;创建Excel文件(插入数据、修改格式、生成图表)的方法,以及Excel查看加密
- C#中创建、打开、读取、写入、保存Exce,C#如何向EXCEL写入数据
- 如何使用c#读取Excel数据?
- C#把数据写如EXCEL文件,以及如何创建EXCEL文件
- 如何使用 Visual C# 2005 或 Visual C# .NET 向 Excel 工作簿传输数据
- [C#]使用Gembox.SpreadSheet向Excel写入数据及图表
- 如何使用 Visual C# 2005 或 Visual C# .NET 向 Excel 工作簿传输数据[转载MSDN]
- 如何使用 ASP.NET、ADO.NET 和 Visual C# .NET 查询和显示 Excel 数据
- 如何使用 ASP.NET、ADO.NET 和 Visual C# .NET 查询和显示 Excel 数据
- 以实例说明如何使用C#从数据库中提取数据,按要求自动生成定制的Excel表格?
- [转载]如何使用 Visual C# 2005 或 Visual C# .NET 向 Excel 工作簿传输数据
- C#.NET常见问题(FAQ)-如何使用DataGridView跟Excel数据交互