使用Unity将Excel中的数据进行绘图表

 使用的Unity版本为Unity 2020.3.34f1c2 (64-bit)

1.将图表插件XCharts导入Unity里面

2.导入ExcelPlugins

3.把XCharts原有的脚本的xy数据个数设置为0,不然会连着,显示在最前一段

4.读取Excel文件,把第一列赋给x轴,第二列赋给y轴。

Xcharts插件和ExcelPlugins及Excel文件见:https://download.csdn.net/download/weixin_44918645/86544011

代码如下:

using Excel;
using System.Data;
using System.IO;
using UnityEngine;
using XCharts.Runtime;

public class ExcelLineChart : MonoBehaviour
{
    void Start()
    {
        //代码动态添加图表需要设置尺寸
        var chart = gameObject.GetComponent<LineChart>();
        if (chart == null)
        {
            chart = gameObject.AddComponent<LineChart>();
            chart.SetSize(1580, 300);//代码动态添加图表需要设置尺寸
        }

        //设置标题:
        var title = chart.GetOrAddChartComponent<Title>();
        title.text = "光谱图";

        //这里设置需要读取的文件的路径
        string FilePath = Application.dataPath + "/Resources/Excel.xlsx";

        //读取该文件
        FileStream stream = File.Open(FilePath, FileMode.Open, FileAccess.Read);

        //读取Excel文件
        IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
        DataSet result = excelReader.AsDataSet();

        int columns = result.Tables[0].Columns.Count;//列
        int rows = result.Tables[0].Rows.Count;//行

      
        //设置显示20个数
        var xAxis = chart.GetOrAddChartComponent<XAxis>();
        xAxis.splitNumber = 10;

        var yAxis = chart.GetOrAddChartComponent<YAxis>();
        yAxis.splitNumber = 10;

        
        //添加数据
        for (int i = 0; i < rows; i++)
        {
            for (int j = 0; j < columns; j++)
            {
                string nvalue = result.Tables[0].Rows[i][j].ToString();
                //打印Excel文件中的内容
                Debug.Log(nvalue);
                if (j == 0)
                    chart.AddXAxisData(nvalue);
                else

                    chart.AddData(0, double.Parse(nvalue));

            }
        }

    }
}

运行效果

猜你喜欢

转载自blog.csdn.net/weixin_44918645/article/details/126924041