Excel处理控件Aspose.Cells教程:使用 C# 在 Excel 中创建股票高低收盘图

将股票价格、最高价、最低价、收盘价和交易量等财务数据可视化是分析师和开发人员的常见需求。借助Aspose.Cells for .NET,您可以直接从 C# 应用程序生成股票最高价、最低价和收盘价图表,而无需安装 Microsoft Excel。

Aspose.Cells官方试用版免费下载,请联系Aspose官方授权代理商慧都科技

加入Aspose技术交流QQ群(1041253375),与更多小伙伴一起探讨提升开发技能。

用于创建股票最高价最低价收盘图的 C# Excel 库

Aspose.Cells for .NET是一个功能强大的全托管库,使开发人员能够以编程方式创建、修改和呈现 Excel 文件。它支持所有主流 Excel 格式,并提供丰富的 API 来处理工作表、单元格、图表、数据透视表等。

图表生成的主要优势:

  • 无需Excel互操作——可在任何运行.NET的平台上运行。
  • 支持所有图表类型——包括股票图表、蜡烛图、OHLC图表和股票最高价最低价收盘图。
  • 丰富的自定义选项——颜色、标记、坐标轴标题、辅助坐标轴等。
  • 高性能——适用于大型数据集。

入门

  1. 从慧都网下最新版 Aspose.Cells for .NET 。

  2. 安装NuGet 包:

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

PM> Install-Package Aspose.Cells

使用 C# 在 Excel 中创建股票最高价最低价收盘图

下面是一个完整的、可直接运行的 C# 控制台程序,它创建一个工作表,用示例 OHLC 数据填充它,添加一个StockHighLowClose图表,并将工作簿保存为StockChart_Output.xlsx。

// --------------------------------------------------------------------
// 1. Create a new workbook and obtain the first worksheet.
// --------------------------------------------------------------------
var workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
sheet.Name = "FinancialData";

// --------------------------------------------------------------------
// 2. Populate the worksheet with sample data.
//    Column A ¨C Date
//    Column B ¨C Open
//    Column C ¨C High
//    Column D ¨C Low
//    Column E ¨C Close
// --------------------------------------------------------------------
string[] dates = { "2025-10-01", "2025-10-02", "2025-10-03", "2025-10-04", "2025-10-05" };
double[] opens = { 150.2, 152.5, 151.0, 153.3, 154.8 };
double[] highs = { 155.0, 156.2, 154.0, 156.5, 158.0 };
double[] lows = { 148.5, 149.8, 149.0, 151.2, 152.1 };
double[] closes = { 152.0, 154.0, 150.5, 155.8, 157.3 };

// Write headers
sheet.Cells["A1"].PutValue("Date");
sheet.Cells["B1"].PutValue("Open");
sheet.Cells["C1"].PutValue("High");
sheet.Cells["D1"].PutValue("Low");
sheet.Cells["E1"].PutValue("Close");

// Fill data rows
for (int i = 0; i < dates.Length; i++)
{
    int row = i + 1; // 0?based index; first data row is row 1 (Excel row 2)
    sheet.Cells[row, 0].PutValue(DateTime.Parse(dates[i])); // Date
    sheet.Cells[row, 1].PutValue(opens[i]);                // Open
    sheet.Cells[row, 2].PutValue(highs[i]);                // High
    sheet.Cells[row, 3].PutValue(lows[i]);                 // Low
    sheet.Cells[row, 4].PutValue(closes[i]);               // Close
}

// Format the date column (optional, makes Excel display dates nicely)
Style dateStyle = sheet.Cells["A2"].GetStyle();
dateStyle.Number = 14; // Built?in date format
sheet.Cells.CreateRange("A2", "A" + (dates.Length + 1)).SetStyle(dateStyle);

// --------------------------------------------------------------------
// 3. Add a StockHighLowClose chart.
// --------------------------------------------------------------------
// Parameters: chart type, upper?left row, upper?left column,
// lower?right row, lower?right column (all zero?based indexes)
int chartIndex = sheet.Charts.Add(ChartType.StockHighLowClose, 7, 0, 26, 10);
Chart stockChart = sheet.Charts[chartIndex];
stockChart.Title.Text = "Sample Stock High?Low?Close Chart";

// --------------------------------------------------------------------
// 4. Set the data range for the chart.
//    A2:A6     -> Category axis (dates)
//    B2:E6    -> Series data (Open, High, Low, Close)
// --------------------------------------------------------------------
stockChart.SetChartDataRange("A1:E6", true);
stockChart.NSeries.CategoryData = "A2:A6"; // Dates

// Add individual series. The order must match the chart type (Open, High, Low, Close)
int index = stockChart.NSeries.Add("=FinancialData!$B$2:$B$6", true);
stockChart.NSeries[index].Name = "Open";

index = stockChart.NSeries.Add("=FinancialData!$C$2:$C$6", true);
stockChart.NSeries[index].Name = "High";

index = stockChart.NSeries.Add("=FinancialData!$D$2:$D$6", true);
stockChart.NSeries[index].Name = "Low";

index = stockChart.NSeries.Add("=FinancialData!$E$2:$E$6", true);
stockChart.NSeries[index].Name = "Close";

// --------------------------------------------------------------------
// 5. Customize axes (optional but recommended for financial charts)
// --------------------------------------------------------------------
stockChart.CategoryAxis.Title.Text = "Date";
stockChart.ValueAxis.Title.Text = "Price";

// Display major grid lines on the value axis
stockChart.ValueAxis.MajorGridLines.IsVisible = true;
stockChart.ValueAxis.MajorGridLines.Weight = WeightType.SingleLine;
stockChart.ValueAxis.MajorGridLines.Color = Color.LightGray;

// --------------------------------------------------------------------
// 6. Adjust legend position and marker style.
// --------------------------------------------------------------------
stockChart.ShowLegend = true;
stockChart.Legend.Position = LegendPositionType.Right;

// Set marker style for better visibility of data points
foreach (Series series in stockChart.NSeries)
{
    series.Marker.MarkerStyle = ChartMarkerType.Circle;
    series.Marker.MarkerSize = 8;
    series.Marker.Area.Formatting = FormattingType.Custom;
    series.Marker.Area.ForegroundColor = Color.White;
    series.Marker.Border.IsVisible = true;
    series.Marker.Border.Color = Color.DarkBlue;
}

// --------------------------------------------------------------------
// 7. Save the workbook.
// --------------------------------------------------------------------
string outputPath = "StockChart_Output.xlsx";
workbook.Save(outputPath);
Console.WriteLine($"Workbook saved to {outputPath}");

代码说明

代码的作用
1️⃣ 实例化一个新的Workbook工作表并访问第一个工作表。
2️⃣ 写入标题,并用日期、开盘价、最高价、最低价和收盘价填充行。
3️⃣ ChartType.StockHighLowClose在数据表下方添加图表。
4️⃣ 将图表链接到工作表范围,并定义类别(日期)轴。
5️⃣ 设置坐标轴标题并启用网格线,以便更轻松地读取价格水平。
6️⃣ 在右侧显示图例,并可自定义数据点标记。
7️⃣ 将工作簿另存为StockChart_Output.xlsx.

运行该程序会生成一个 Excel 文件,其中包含一个功能齐全的 StockHighLowClose 图表,可以在 Microsoft Excel、LibreOffice 或任何其他支持 XLSX 格式的查看器中打开。

结论

使用 Aspose.Cells for .NET创建股票最高价-最低价-收盘价图表非常简单,无需在服务器上安装 Microsoft Excel。按照上述完整示例操作,您可以生成专业美观的财务图表,并根据您的品牌进行自定义,然后将其集成到报表流程或 Web 应用程序中。

Aspose.Cells官方试用版免费下载,请联系Aspose官方授权代理商慧都科技

加入Aspose技术交流QQ群(1041253375),与更多小伙伴一起探讨提升开发技能。

posted @ 2025-12-08 14:08  IT开发者笔记  阅读(4)  评论(0)    收藏  举报