zoukankan      html  css  js  c++  java
  • 使用Aspose.Cells 设置chart的y坐标轴显示值

    目的:设置chart的y坐标轴显示值

    用aspose.cell生成的chart生成的Y轴是默认生成的,自己要定义y轴坐标值
    1.把数据源写到excel里面,list里面
    2.y轴坐标自己定义

    第一种:默认设置:chart里面会自己定义y轴坐标
    第二种:y周坐标以对数显示 chart.ValueAxis.IsLogarithmic = true; 以10 100 1000格式显示
    第三种:只设置间隔值 chart.ValueAxis.MajorUnit =20000;,会自动获取y轴的最大值与最小值
    第四种:设置y轴的最大值与最小值,设置间隔值
    //设置y坐标轴的厚度
    chart.ValueAxis.AxisLine.Weight = WeightType.WideLine;
    chart.ValueAxis.Title.Text = "y轴坐标";
    chart.ValueAxis.MajorUnit =20000;//设置y轴的显示值间隔
    chart.ValueAxis.MaxValue = 200000;//设置y轴开始最大值
    chart.ValueAxis.MinValue = 0;//设置y轴的最小值

    3.设置右边坐标轴是不是显示
    //设置右边坐标轴显示
    chart.SecondValueAxis.IsVisible = true;
    //设置y坐标轴间隔值字大小
    chart.SecondValueAxis.TickLabels.Font.Size = 12;
    chart.SecondValueAxis.Title.Text = "y轴坐标2";

    导出效果:

    //设置y坐标轴的厚度
    chart.ValueAxis.AxisLine.Weight = WeightType.WideLine;
    chart.ValueAxis.Title.Text = "y轴坐标";
    chart.ValueAxis.MajorUnit =20000;//设置y轴的显示值间隔
    chart.ValueAxis.MaxValue = 200000;//设置y轴开始最大值
    chart.ValueAxis.MinValue = 0;//设置y轴的最小值

    第二种:y周坐标以对数显示 chart.ValueAxis.IsLogarithmic = true; 以10 100 1000格式显示

    //设置y坐标轴的厚度
    chart.ValueAxis.AxisLine.Weight = WeightType.WideLine;
    chart.ValueAxis.Title.Text = "y轴坐标";
    chart.ValueAxis.MajorUnit =20000;//设置y轴的显示值间隔
    chart.ValueAxis.MaxValue = 80000;//设置y轴开始最大值
    chart.ValueAxis.MinValue = 0;//设置y轴的最小值

    入口函数

     public ActionResult excels()
            {
                WorkbookDesigner designer = new WorkbookDesigner();
                string path = Server.MapPath("/Templete/11111.xls");
                designer.Workbook.Open(path);
                Workbook workbook = designer.Workbook;
                CreateStaticData(workbook);
                CreateStaticReport(workbook);
                designer.Process();
                //将流文件写到客户端流的形式写到客户端,名称是_report.xls
                designer.Save("_report.xls", SaveType.OpenInExcel, FileFormatType.Excel2003, System.Web.HttpContext.Current.Response);
                Response.Flush();
                Response.Close();
                designer = null;
                // Response.End();
                return View("getexcel");
            }
    

    设置数据源

      private void CreateStaticData(Workbook workbook)
            {
                //Initialize Cells object
                Cells cells = workbook.Worksheets[0].Cells;
    
                //Put string into a cells of Column A
                cells["A1"].PutValue("class");
                cells["A2"].PutValue("红萝卜");
                cells["A3"].PutValue("白萝卜");
                cells["A4"].PutValue("青萝卜");
    
                //Put a value into a Row 1
                cells["B1"].PutValue(2002);
                cells["C1"].PutValue(2003);
                cells["D1"].PutValue(2004);
                cells["E1"].PutValue(2005);
                cells["F1"].PutValue(2006);
    
                //Put a value into a Row 2
                cells["B2"].PutValue(40000);
                cells["C2"].PutValue(45000);
                cells["D2"].PutValue(50000);
                cells["E2"].PutValue(55000);
                cells["F2"].PutValue(70000);
    
                //Put a value into a Row 3
                cells["B3"].PutValue(10000);
                cells["C3"].PutValue(25000);
                cells["D3"].PutValue(40000);
                cells["E3"].PutValue(52000);
                cells["F3"].PutValue(60000);
    
                //Put a value into a Row 4
                cells["B4"].PutValue(5000);
                cells["C4"].PutValue(15000);
                cells["D4"].PutValue(35000);
                cells["E4"].PutValue(30000);
                cells["F4"].PutValue(20000);
            }
    

    设置chart y轴的显示值

       private void CreateStaticReport(Workbook workbook)
            {
                //初始化 Worksheet
                Worksheet sheet = workbook.Worksheets[0];
                //设置 worksheet名称
                sheet.Name = "Line";
                //设置worksheet不显示
                sheet.IsGridlinesVisible = false;
                //根据数据源 创建 chart
                int chartIndex = 0;
                chartIndex = sheet.Charts.Add(ChartType.Line, 5, 1, 29, 15);
                //初始化chart
                Chart chart = sheet.Charts[chartIndex];
                //设置竖线不显示
                chart.CategoryAxis.MajorGridLines.IsVisible = false;
                //设置Title样式
                chart.Title.Text = "Sales By Class For Years";
                chart.Title.TextFont.Color = Color.Black;
                chart.Title.TextFont.IsBold = true;
                chart.Title.TextFont.Size = 12;
                //设置chart的数据源
                chart.NSeries.Add("B2:F4", false);
                chart.NSeries.CategoryData = "B1:F1";
                //Set Nseries color varience to True
                chart.NSeries.IsColorVaried = true;
                //初始化 Cells
                Cells cells = workbook.Worksheets[0].Cells;
                //循环 cells
                for (int i = 0; i < chart.NSeries.Count; i++)
                {
                    //设置系列的名称
                    chart.NSeries[i].Name = cells[i + 1, 0].Value.ToString();
                    chart.NSeries[i].MarkerStyle = ChartMarkerType.Circle;
                    //设置系列的名称 Background 与ForeGround
                    chart.NSeries[i].MarkerBackgroundColor = Color.Yellow;
                    chart.NSeries[i].MarkerForegroundColor = Color.Gold;
                    //设置系列标记
                    chart.NSeries[i].MarkerSize = 10;
                    //设置Category的名称
                    chart.CategoryAxis.Title.Text = "Year(2002-2006)";
                    chart.CategoryAxis.Title.TextFont.Color = Color.Black;
                    chart.CategoryAxis.Title.TextFont.IsBold = true;
                    chart.CategoryAxis.Title.TextFont.Size = 10;
                    //设置图例的位置
                    chart.Legend.Position = LegendPositionType.Top;
                }
    
                //设置y轴的样式
                chart.ValueAxis.TickLabelPosition = TickLabelPositionType.NextToAxis;
                chart.ValueAxis.TickLabels.Font.Color = Color.Gray;
                chart.ValueAxis.AxisBetweenCategories = false;
                //chart.ValueAxis.TickLabels.Font.Size = 13;
                chart.ValueAxis.TickLabels.Font.IsBold = true;
                //Y坐标轴对数间隔展示
                // chart.ValueAxis.IsLogarithmic = true;
                chart.ValueAxis.MajorGridLines.Color = Color.Red;
                chart.ValueAxis.AxisLine.Color = Color.DarkGreen;
                //设置y坐标轴的厚度
                chart.ValueAxis.AxisLine.Weight = WeightType.WideLine;
                chart.ValueAxis.Title.Text = "y轴坐标";
                chart.ValueAxis.MajorUnit = 20000;//MajorUnit =2000;
                chart.ValueAxis.MaxValue = 200000;
                chart.ValueAxis.MinValue = 0;
                //设置右边坐标轴显示
                chart.SecondValueAxis.IsVisible = true;
                //设置y坐标轴间隔值字大小
                chart.SecondValueAxis.TickLabels.Font.Size = 12;
                chart.SecondValueAxis.Title.Text = "y轴坐标2";
                // chart.SecondValueAxis.MinorGridLines.IsVisible = true;
            }
    

      

      

  • 相关阅读:
    代码重构与单元测试 ---- 系列文章
    在.Net Core中,把HttpClient换成IHttpClientFactory之使用技巧
    ABP框架使用Oracle数据库,并实现从SQLServer中进行数据迁移的处理
    总结开发中基于DevExpress的Winform界面效果
    Winform框架中窗体基类的用户身份信息的缓存和提取
    循序渐进BootstrapVue,开发公司门户网站(6)--- 门户网站后端内容管理
    元学习MAML——要解决的问题是给你一堆猫狗图片(训练样本较多),然后给你一类黑天鹅图谱(样本少),让你训练一个模型,能够泛化能力好,识别猫狗和黑天鹅
    nmap -A 启用操作系统和版本检测,脚本扫描和路由跟踪功能
    安全数据集汇总——from安全学术圈 https://secdr.org/
    DNS域传送漏洞——由于DNS服务器配置不当,可能导致攻击者获取某个域(域名)的所有(子域名)记录
  • 原文地址:https://www.cnblogs.com/muer/p/yaxle.html
Copyright © 2011-2022 走看看