前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Aspose.cells 创建图表

Aspose.cells 创建图表

作者头像
有趣的分享
发布2024-08-28 17:17:15
670
发布2024-08-28 17:17:15

实际的工作中,需要输出报表,然而网上很少有通过Aspose.cells创建图表的样例,官网也几乎找不到例子,所以自己折腾了一下,写出了如下代码。

代码语言:javascript
复制
DataSet dataSet2 = new DataSet("MyDataSet");
// 创建一个 DataTable 并命名为 Table1
DataTable table2 = new DataTable("Table1");

// 添加列到 DataTable
table2.Columns.Add("RowNum", typeof(int));
table2.Columns.Add("CoFullName", typeof(string));
table2.Columns.Add("IE_FLAG", typeof(string));
table2.Columns.Add("CODE_TS", typeof(string));
table2.Columns.Add("G_NAME", typeof(string));
table2.Columns.Add("USD_TOTAL", typeof(double));
table2.Columns.Add("Ratio", typeof(double));
table2.Columns.Add("Months", typeof(string));

DataRow row2 = table2.NewRow();
row2["RowNum"] = 1;
row2["CoFullName"] = "深圳市XX物流有限公司";
row2["IE_FLAG"] = "进口";
row2["CODE_TS"] = "8544200000";
row2["G_NAME"] = "同轴电缆";
row2["Months"] = "2024-01~2024-07";
row2["USD_TOTAL"] = 386786;
row2["Ratio"] = 80.40;
table2.Rows.Add(row2);

DataRow row3 = table2.NewRow();
row3["RowNum"] = 2;
row3["CoFullName"] = "深圳市XX物流有限公司";
row3["CODE_TS"] = "8504101000";
row3["IE_FLAG"] = "进口";
row3["G_NAME"] = "电子镇流器";
row3["Months"] = "2024-01~2024-07";
row3["USD_TOTAL"] = 51599;
row3["Ratio"] = 10.73;
table2.Rows.Add(row3);

DataRow row4 = table2.NewRow();
row4["RowNum"] = 3;
row4["CoFullName"] = "深圳市XX物流有限公司";
row4["CODE_TS"] = "8532241000";
row4["IE_FLAG"] = "进口";
row4["Months"] = "2024-01~2024-07";
row4["G_NAME"] = "陶瓷电容";
row4["USD_TOTAL"] = 42720;
row4["Ratio"] = 8.88;
table2.Rows.Add(row4);

DataRow row5 = table2.NewRow();
row5["RowNum"] = 3;
row5["CoFullName"] = "深圳市XX物流有限公司";
row5["CODE_TS"] = "6404199000";
row5["IE_FLAG"] = "进口";
row5["Months"] = "2024-01~2024-07";
row5["G_NAME"] = "女靴";
row5["USD_TOTAL"] = 12720;
row5["Ratio"] = 8.18;
table2.Rows.Add(row5);


dataSet2.Tables.Add(table2);

//进出口货值TOP10分析模版.xlsx


using (FileStream fs = new FileStream("进出口货值TOP10分析模版.xlsx", FileMode.Open, FileAccess.Read))
{
    var workbookx1 = new Aspose.Cells.Workbook(fs);
    ExcelReportHelper.ExcelDataFillsV2(dataSet2, workbookx1, true, 1);

    Worksheet sheet = workbookx1.Worksheets[0];
    // 创建一个图表对象
    int chartIndex = sheet.Charts.Add(ChartType.Column, 5, 8, 30, 20);
    Chart chart = sheet.Charts[chartIndex];

    // 设置图表锚点位置
    // 创建一个锚点,定义图表的起始和结束位置
    chart.ChartObject.Placement = PlacementType.FreeFloating;
    chart.ChartObject.UpperLeftRow = 5;
    chart.ChartObject.UpperLeftColumn = 8;
    chart.ChartObject.LowerRightRow = 30;
    chart.ChartObject.LowerRightColumn = 20;

    // 设置X轴数据范围 
    int startRow = 2;
    int endRow = table2.Rows.Count + 2;

    // 设置Y轴数据范围
    Dictionary<string, string> YDic = new Dictionary<string, string>
    {
        { "金额(美元)", $"F{startRow + 1}:F{endRow}" }
    };

    foreach (var yData in YDic)
    {
        int seriesIndex = chart.NSeries.Add(yData.Value, true);
        chart.NSeries[seriesIndex].Name = yData.Key;
        chart.NSeries[seriesIndex].XValues = $"E{startRow + 1}:E{endRow}";
    }
    // 设置图表位置
    chart.ChartObject.Width = 800;
    chart.ChartObject.Height = 400;

    workbookx1.Save("进出口货值TOP10分析-aspose.xlsx");
}

最终生成的效果如下:


本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档