news 2026/4/18 7:49:06

Excel处理控件Aspose.Cells教程:使用C#在Excel中创建折线图

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Excel处理控件Aspose.Cells教程:使用C#在Excel中创建折线图

可视化长期趋势是许多商业报告的核心需求。折线图能够清晰直观地呈现连续轴上的数据序列,因此非常适合展示业绩、销售或任何基于时间的数据。在本指南中,我们将向您展示如何使用Aspose.Cells for .NET和 C# 以编程方式生成折线图。

Aspose.Cells官方试用版免费下载

用于创建折线图的 C# Excel 库

Aspose.Cells for .NET是一款功能全面的 API,使开发人员无需 Microsoft Office 即可处理 Excel 文件。它支持创建、编辑和自定义各种类型的图表,包括折线图。主要优势包括:

  • 丰富的 API 接口——完全控制图表类型、系列、坐标轴和格式。
  • 无 COM 依赖项– 可在任何支持 .NET 的平台上运行。
  • 高性能——高效处理大型工作簿。
  • 支持多种格式——读/写 XLSX、XLS、CSV、PDF 等格式。

入门

  1. 从慧都网下载最新的 Aspose.Cells for .NET

  2. 通过 NuGet安装:PM> Install-Package Aspose.Cells

  3. Aspose.Cells在你的项目中添加对它的引用。

使用 C# 在 Excel 中创建折线图

以下是两个实际例子:

  1. 简单的单系列折线图——非常适合快速可视化趋势。
  2. 带辅助轴的多系列折线图——在比较不同尺度的数据集时非常有用。

这两个例子都是完整的、可直接编译的 C# 程序。

示例 1 – 简单单系列折线图

// 1. Create a new workbook and obtain the first worksheet. var workbook = new Workbook(); var sheet = workbook.Worksheets[0]; // ------------------------------------------------------------ // 2. Populate worksheet with sample data. // ------------------------------------------------------------ // A B // 1 Month Sales // 2 Jan 120 // 3 Feb 150 // 4 Mar 180 // 5 Apr 210 // ------------------------------------------------------------ string[] months = { "Jan", "Feb", "Mar", "Apr" }; double[] sales = { 120, 150, 180, 210 }; sheet.Cells["A1"].PutValue("Month"); sheet.Cells["B1"].PutValue("Sales"); for (int i = 0; i < months.Length; i++) { sheet.Cells[i + 1, 0].PutValue(months[i]); // Column A sheet.Cells[i + 1, 1].PutValue(sales[i]); // Column B } // ------------------------------------------------------------ // 3. Add a Line chart object. // ------------------------------------------------------------ // Parameters: (type, upper left row, upper left column, lower right row, lower right column) int chartIndex = sheet.Charts.Add(ChartType.Line, 6, 0, 26, 10); Chart chart = sheet.Charts[chartIndex]; chart.Title.Text = "Monthly Sales Trend"; // ------------------------------------------------------------ // 4. Add the series ¨C data range refers to the Sales column. // ------------------------------------------------------------ int seriesIndex = chart.NSeries.Add("=Sheet1!$B$2:$B$5", true); chart.NSeries[seriesIndex].Name = "Sales"; // ------------------------------------------------------------ // 5. Set category (X?axis) data ¨C months. // ------------------------------------------------------------ chart.NSeries.CategoryData = "=Sheet1!$A$2:$A$5"; // ------------------------------------------------------------ // 6. Optional: customize axes titles. // ------------------------------------------------------------ chart.CategoryAxis.Title.Text = "Month"; chart.ValueAxis.Title.Text = "Sales"; // ------------------------------------------------------------ // 7. Save the workbook. // ------------------------------------------------------------ workbook.Save("SimpleLineChart.xlsx"); Console.WriteLine("Workbook with Line chart saved as SimpleLineChart.xlsx");

解释

  • 工作簿在内存中创建,并填充了月份和销售数据。
  • ChartType.Line创建基本折线图。
  • NSeries.Add定义数据系列;CategoryData分配 X 轴标签。
  • 生成的文件SimpleLineChart.xlsx包含一个格式完整的折线图。

示例 2 – 带辅助坐标轴的多系列折线图

// 1. Initialize workbook and worksheet. var workbook = new Workbook(); var sheet = workbook.Worksheets[0]; // ------------------------------------------------------------ // 2. Add sample data for two metrics: Revenue (primary) and // Profit Margin (secondary). // ------------------------------------------------------------ // A B C // 1 Month Revenue Profit% // 2 Jan 3000 12 // 3 Feb 3500 15 // 4 Mar 4000 13 // 5 Apr 3800 14 // ------------------------------------------------------------ string[] months = { "Jan", "Feb", "Mar", "Apr" }; double[] revenue = { 3000, 3500, 4000, 3800 }; double[] profitPct = { 12, 15, 13, 14 }; sheet.Cells["A1"].PutValue("Month"); sheet.Cells["B1"].PutValue("Revenue"); sheet.Cells["C1"].PutValue("Profit%"); for (int i = 0; i < months.Length; i++) { sheet.Cells[i + 1, 0].PutValue(months[i]); // Month sheet.Cells[i + 1, 1].PutValue(revenue[i]); // Revenue sheet.Cells[i + 1, 2].PutValue(profitPct[i]); // Profit% } // ------------------------------------------------------------ // 3. Insert a Line chart. // ------------------------------------------------------------ int chartIdx = sheet.Charts.Add(ChartType.Line, 7, 0, 27, 12); Chart chart = sheet.Charts[chartIdx]; chart.Title.Text = "Revenue vs. Profit Margin"; chart.NSeries.CategoryData = "=Sheet1!$A$2:$A$5"; // ------------------------------------------------------------ // 4. Add Revenue series (primary axis). // ------------------------------------------------------------ int revSeriesIdx = chart.NSeries.Add("=Sheet1!$B$2:$B$5", true); chart.NSeries[revSeriesIdx].Name = "Revenue"; chart.NSeries[revSeriesIdx].Type = ChartType.Line; // Explicit, though default // ------------------------------------------------------------ // 5. Add Profit% series (secondary axis) and set marker style. // ------------------------------------------------------------ int profitSeriesIdx = chart.NSeries.Add("=Sheet1!$C$2:$C$5", true); chart.NSeries[profitSeriesIdx].Name = "Profit%"; chart.NSeries[profitSeriesIdx].Type = ChartType.Line; chart.NSeries[profitSeriesIdx].PlotOnSecondAxis = true; // Use secondary Y?axis // Optional: customize marker for profit series chart.NSeries[profitSeriesIdx].Marker.MarkerStyle = ChartMarkerType.Circle; chart.NSeries[profitSeriesIdx].Marker.MarkerSize = 10; chart.NSeries[profitSeriesIdx].Marker.Area.ForegroundColor = Color.Orange; // ------------------------------------------------------------ // 6. Axis titles. // ------------------------------------------------------------ chart.CategoryAxis.Title.Text = "Month"; chart.ValueAxis.Title.Text = "Revenue (USD)"; chart.SecondValueAxis.Title.Text = "Profit %"; // ------------------------------------------------------------ // 7. Save workbook. // ------------------------------------------------------------ workbook.Save("MultiSeriesLineChart.xlsx"); Console.WriteLine("Workbook saved as MultiSeriesLineChart.xlsx");

要点

  • 增加了两个系列:收入(主轴)和利润率(次轴),以说明不同的尺度。
  • PlotOnSecondAxis = true将第二组数据移至 Y 轴右侧。
  • 标记自定义使次要系列在视觉上独具特色。
  • 最终文件MultiSeriesLineChart.xlsx包含一个功能齐全的多系列折线图。

结论

使用Aspose.Cells for .NET创建折线图既简单又高度可定制。无论您需要快速绘制单系列趋势线,还是需要创建带有辅助坐标轴的复杂多系列图表,该库都可通过直观的 API 提供全面的控制。您可以以提供的代码示例为起点,并根据您的具体报表需求进行调整。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/11 7:47:19

智能体自主学习中的数据筛选:基于信息增益的样本优先级排序

智能体自主学习中的数据筛选&#xff1a;基于信息增益的样本优先级排序 一、背景&#xff1a;为什么智能体需要“挑数据”&#xff1f; 在当前的 AI Agent&#xff08;智能体&#xff09; 架构中&#xff0c;模型不再只是被动训练的“黑盒”&#xff0c;而是具备&#xff1a; 自…

作者头像 李华
网站建设 2026/4/10 17:15:16

Dify版本发布系统使用指南:实现AI应用迭代自动化

Dify版本发布系统使用指南&#xff1a;实现AI应用迭代自动化 在今天的AI应用开发中&#xff0c;一个常见的困境是&#xff1a;明明在测试环境表现完美的智能客服或知识问答系统&#xff0c;一上线就“翻车”。提示词&#xff08;Prompt&#xff09;改了几行&#xff0c;结果生成…

作者头像 李华
网站建设 2026/4/18 11:02:42

Qwen2大模型微调入门实战(完整代码)

简介&#xff1a; 该教程介绍了如何使用Qwen2&#xff0c;一个由阿里云通义实验室研发的开源大语言模型&#xff0c;进行指令微调以实现文本分类。微调是通过在&#xff08;指令&#xff0c;输出&#xff09;数据集上训练来改善LLMs理解人类指令的能力。教程中&#xff0c;使用…

作者头像 李华
网站建设 2026/4/18 8:42:11

Dify平台支持的自然语言理解任务类型汇总

Dify平台支持的自然语言理解任务类型深度解析 在智能客服、企业知识库和自动化流程日益普及的今天&#xff0c;如何让大模型真正“听懂”用户意图&#xff0c;并做出准确响应&#xff0c;已成为AI落地的关键瓶颈。传统开发方式中&#xff0c;开发者需要手动编写提示词、管理数据…

作者头像 李华
网站建设 2026/4/18 8:28:30

STM32输出PWM控制LED亮度:项目应用中的关键配置详解

用STM32玩转LED调光&#xff1a;从定时器配置到实战避坑的完整指南你有没有遇到过这样的情况&#xff1f;明明代码跑通了&#xff0c;PWM也输出了&#xff0c;可LED就是一明一暗地“抽搐”&#xff0c;或者亮度变化不自然、颜色偏得离谱&#xff1f;别急&#xff0c;这并不是你…

作者头像 李华
网站建设 2026/4/16 10:20:02

Dify与Hugging Face模型库的无缝对接实现方式

Dify与Hugging Face模型库的无缝对接实现方式 在AI应用开发日益普及的今天&#xff0c;一个现实问题摆在开发者面前&#xff1a;如何快速将前沿的大语言模型&#xff08;LLM&#xff09;集成到实际业务中&#xff1f;许多团队拥有明确的应用场景——比如智能客服、合同审核或知…

作者头像 李华