使用EPPlus加载excel数据

这篇具有很好参考价值的文章主要介绍了使用EPPlus加载excel数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

环境

Unity:2021.3.6f1c1
EPPlus:5.8.14 net.3.5

准备

  1. 使用Nuget下载EPPlus,找到 net3.5中的EPPlus.dll文件,导入Unity的Plugins文件夹
  2. 创建一个xlsx(excel)文件,测试内容如下图
    . 使用EPPlus加载excel数据
  3. 表格内容解释
    第一行解释第二行的内容,
    第二行对应变量名称,后续使用反射设置变量的值
    第三行和第四行成员变量需要设置的内容
    "学生信息"是表单的名称,后续使用该名称获取表中的数据

测试脚本

  1. 加载excel数据,数据内容显示在窗口
using OfficeOpenXml;
using System;
using System.Collections.Generic;
using System.IO;
using System.Reflection;
using System.Text;
using UnityEngine;
using UnityEngine.UI;
public class TestEpplus : MonoBehaviour
{
    string filePath = "C:\\Users\\Administrator\\Desktop\\班级信息.xlsx";

    [SerializeField] Text text;

    void Start()
    {
        text.text = "数据加载中...";
        var infos = ExcelData.CreateObjsFormExcel(filePath);

        if (infos != null)
        {
            var length = infos.Count;
            StringBuilder stringBuilder = new StringBuilder();

            for (int i = 0; i < length; i++)
            {
                stringBuilder.Append(infos[i].ToString());

                if (i != length - 1)
                    stringBuilder.Append("\n");

            }

            text.text = stringBuilder.ToString();
        }
        else
        {
            text.text = "excel表格没有加载成功";
        }
    }
}
  1. 测试数据类
[System.Serializable]
public class ExcelData
{
    public string grade;
    public string name;
    public int age;
    public bool isMale;

    public static List<ExcelData> CreateObjsFormExcel(string path)
    {
        List<ExcelData> gradeData = new List<ExcelData>() { Capacity = 4 };

        Type type = typeof(ExcelData);

        using (var package = new ExcelPackage(new FileInfo(path)))
        {
            //获取工作表
            ExcelWorksheet excelWorksheet = package.Workbook.Worksheets["学生信息"];

            //获取excel表格行列信息  
            var dimension = excelWorksheet.Dimension;

            //行
            int begin = dimension.Start.Row;
            int end = dimension.End.Row;

            //列
            int columnBegin = dimension.Start.Column;
            int columnEnd = dimension.End.Column;

            //逐行 注意行列不是从零开始
            //+2 从第三行开始获取对应成员的值
            for (int i = begin + 2; i <= end; i++)
            {
                ExcelData excelData = new ExcelData();
                //逐列
                for (int j = columnBegin; j <= columnEnd; j++)
                {
                    //GetValue方法获取表格中的值
                    //根据字符串 反射成员变量信息 
                    FieldInfo fieldInfo = type.GetField(excelWorksheet.GetValue(2, j).ToString());

                    //设置对象成员变量的值
                    //使用ChangeType将表格中的值转换为对应类型
                    fieldInfo.SetValue(excelData, Convert.ChangeType(excelWorksheet.GetValue(i, j), fieldInfo.FieldType));
                }
                gradeData.Add(excelData);
            }
        }
        return gradeData;
    }

    public override string ToString()
    {
        return "班级:" + grade + "、姓名:" + name + "、年龄:" + age + "、性别:" + (isMale == true ? "男。" : "女。");
    }
}

编辑器中运行

使用EPPlus加载excel数据

发布后运行

发布后运行,不能加载excel数据文章来源地址https://www.toymoban.com/news/detail-474126.html

解决方法

  1. 找到Unity编辑器的安装路径
    例如:
    2019.4.34f1c1\Editor\Data\MonoBleedingEdge\lib\mono\unityjit
  2. 找到以下dll
    I18N.CJK.dll 、I18N.dll、I18N.MidEast.dll
    I18N.Other.dll、I18N.Rare.dll、I18N.West.dll
  3. 将这些dll放入打包后的文件中
    XXXX_Data\Managed

到了这里,关于使用EPPlus加载excel数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • F1C200S/F1C100S修改U-BOOT调试串口为UART1(PD3,PD4)

    此处用的uboot是荔枝派nano的 可以从荔枝派的仓库拉取 修改好的在这 查看串口挂载总线 查看数据手册 根据总线图可以看出串口是挂载在APB总线上面的 找到总线时钟设置部分 使能UART1控制器时钟 原本以为要改这,但是后来发现不需要修改。。。 设置GPIO引脚复用功能 直接pd

    2024年02月14日
    浏览(47)
  • EPPlus 读取和生成Excel

    在项目中添加了EPPlus库的引用,你可以通过NuGet包管理器或手动将EPPlus库添加到项目中。同时,需要注意的是EPPlus库支持的是xlsx格式的Excel文件。 使用EPPlus读取本地Excel文件的示例代码如下: 请注意替换代码中的\\\"path_to_your_excel_file.xlsx\\\"为你的本地Excel文件的路径。这个示例代

    2024年02月13日
    浏览(59)
  • Unity3d 2021版本工程打开Visual Studio错误未找到这些文件,将无法加载的问题

    最近是和Unity3d 2021版本杠上了啊,因为需要的一个功能必须用Unity3d 2021版本,所以带出来了这一系列的问题。这个问题是我在Unity编辑器上Open C# Project之后VS会打不开工程,并提示“命令行中指定了以下文件: 未能找到这些文件,将无法加载。”: 而且***.sln、Assembly-CSharp.c

    2024年02月16日
    浏览(84)
  • 【记录】Excel 2021|(三)VBA使用Selenium自动登录网页

    首先需要安装 Selenium Basic ,才能在工具栏中找到 Selenium Type Library 。 在安装Selenium Basic之前,请确保您的计算机上已安装Visual Basic for Applications(VBA)。VBA是Microsoft Office应用程序(如Excel、Word等)中使用的宏语言。 安装Selenium Basic方法如下: 首先,下载Selenium Basic安装程序。

    2024年02月11日
    浏览(42)
  • pandas读取Excel核心源码剖析,面向过程仿openpyxl源码实现Excel数据加载

    📢作者: 小小明-代码实体 📢博客主页:https://blog.csdn.net/as604049322 📢欢迎点赞 👍 收藏 ⭐留言 📝 欢迎讨论! 今天我们将研究pandas如何使用openpyxl引擎读取xlsx格式的Excel的数据,并考虑以面向过程的形式简单的自己实现一下。 截止目前本人所使用的pandas和openpyxl版本为:

    2023年04月19日
    浏览(59)
  • 工具类——Java导出EXCEL2(设置样式、加载并填充图片、加载指定模板、大数据量设置窗口大小与刷新频率)

    书接上篇:工具类——Java 浏览器导入、导出Excel(Java import、export)demo POI的导出方式:创建/加载Workbook,设置样式,填充数据,然后生成本地临时文件,最终以浏览器的形式打开,完成整个导出动作。 demo如下, demo如下, XSSFClientAnchor anchor = new XSSFClientAnchor(int dx1, int dy1,

    2024年02月01日
    浏览(42)
  • Excel快捷键F1-F9详解:掌握实用快捷操作,提升工作效率

    Excel是广泛应用于办公场景的优质电子表格软件,然而,许多人只是使用鼠标点击菜单和工具栏来完成操作,而忽略了快捷键的威力。在本文中,我们将详解Excel中的F1-F9快捷键,帮助您掌握实用的快捷操作,提升工作效率。无论是快速插入函数、调整单元格格式、还是复制粘

    2024年02月14日
    浏览(59)
  • Excel 2021入门指南:详细解读常用功能

    软件安装: 办公神器office2021安装教程,让你快速上手_正经人_____的博客-CSDN博客           打开Excel 2021后,可以看到左上角的“文件”选项,在弹出的菜单中选择“新建”选项,然后可以选择使用空白工作表或者使用模板来创建你需要的工作表。 先准备一份数据方便后

    2024年02月09日
    浏览(42)
  • Unity使用 Addressables 预加载所有资源,提现加载资源,发布webgl加载缓慢问题

    Addressables 我也是刚接触,知道的不是很多,基本的用法还是知道一些的 1 .在Window–Package Manager里找到Addressables进行安装   2.选择资源,点击Assets中的一个资源,在Inspector面板上就会出现一个勾选Assressable,也就是是否加入资源打包的分组,和AssetBundle分组是一个性质。选上以

    2023年04月08日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包