Unity3D操作数据之Excel表操作(创建、读取、写入、修改)

这篇具有很好参考价值的文章主要介绍了Unity3D操作数据之Excel表操作(创建、读取、写入、修改)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

叨唠两句:
首先使用Excel需要导入插件,其次在程序运行期间不要打开对应的Excel文件
其次相对于一些程序使用Excel比使用数据库更具有优势
读取主要使用Epplus插件,后续会推出关于Epplus的API讲解

一、前言

读取Excel文件,需要导入一些dll文件,才能进行操作Excel数据:
Unity3D操作数据之Excel表操作(创建、读取、写入、修改)
如果打包发布还需要导入以下dll文件,否则打包后不能操作Excel
在(unity安装目录)C:\Program Files\Unity\Editor\Data\Mono\lib\mono\unity中可以找到
Unity3D操作数据之Excel表操作(创建、读取、写入、修改)

dll文件下载地址:CSDN | 网盘

二、创建Excel文件

  • 首先,将需要用到的dll文件全部导入到项目的Plugins(必须此目录)文件夹目录下:
  • 添加引用:
    • using OfficeOpenXml;
    • using System.IO;
    • using Excel;
    • using System.Data;
  • 代码:
public void CreatExcel()
    {
        //文件地址
        FileInfo newFile = new FileInfo(Application.dataPath +"/test.xlsx");
        //如果文件存在删除重建
        if (newFile.Exists)
        {
            newFile.Delete();
            newFile = new FileInfo(Application.dataPath + "/test.xlsx");
        }

        //数据操作
        using (ExcelPackage package = new ExcelPackage(newFile))
        {
            //初次创建增加数据操作(重点在于这条操作语句不同)
            ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("test");

            //添加对应列名
            worksheet.Cells[1, 1].Value = "列名1";
            worksheet.Cells[1, 2].Value = "列名2";
            worksheet.Cells[1, 3].Value = "列名3";

            //保存
            package.Save();
        }
    }
  • 如果只想创建文件不写入表头,数据操作步骤可以省略
  • 运行结果Unity3D操作数据之Excel表操作(创建、读取、写入、修改)

三、写入数据

  • 添加数据
public void WriteExcel()
    {
        //文件地址
        FileInfo newFile = new FileInfo(Application.dataPath + "/test.xlsx");
        //数据操作
        using (ExcelPackage package = new ExcelPackage(newFile))
        {
            //增加数据操作(重点在于这条操作语句与初次创建添加数据不同)
            ExcelWorksheet worksheet = package.Workbook.Worksheets["test"];

            //添加第二行数据
            worksheet.Cells[2, 1].Value = "名称1";
            worksheet.Cells[2, 2].Value = "价格1";
            worksheet.Cells[2, 3].Value = "销量1";

            //添加第三行数据
            worksheet.Cells[3, 1].Value = "名称2";
            worksheet.Cells[3, 2].Value = "价格2";
            worksheet.Cells[4, 3].Value = "销量2";

            //保存
            package.Save();
        }
    }

运行结果:Unity3D操作数据之Excel表操作(创建、读取、写入、修改)

  • 修改、删除数据
public void ChangeExcel()
    {
        //文件地址
        FileInfo newFile = new FileInfo(Application.dataPath + "/test.xlsx");

        //数据操作
        using (ExcelPackage package = new ExcelPackage(newFile))
        {
            ExcelWorksheet worksheet = package.Workbook.Worksheets["test"];

            //追加
            worksheet.Cells[4, 1].Value = "名称3";
            worksheet.Cells[4, 2].Value = "价格3";
            worksheet.Cells[4, 3].Value = "销量3";

            //删除某一列(参数:列的序号)
            worksheet.DeleteColumn(1);
            //删除某一行(参数:行的序号)
            worksheet.DeleteRow(1);

            //修改(和添加一样)
            worksheet.Cells[4, 1].Value = "修改名称";
            worksheet.Cells[4, 2].Value = "修改价格";
            worksheet.Cells[4, 3].Value = "修改销量";


            //保存
            package.Save();
        }
    }

四、读取文件

public void Reading()
    {
        //加载文件
        FileStream fileStream = File.Open(Application.dataPath + "/test.xlsx", FileMode.Open, FileAccess.Read);
        IExcelDataReader excelDataReader = ExcelReaderFactory.CreateOpenXmlReader(fileStream);
        DataSet result = excelDataReader.AsDataSet();

        // 获取表格有多少列
        int columns = result.Tables[0].Columns.Count;
        // 获取表格有多少行 
        int rows = result.Tables[0].Rows.Count;
		Debug.Log("共有:" + columns + "列 " + rows + "行");
		
        //第一行为表头,不读取。没有表头从0开始(获取数据)
        for (int i = 0; i < rows; i++)
        {
            for (int j = 0; j < columns; j++)
            {
                // 获取表格中指定行指定列的数据 
                string value = result.Tables[0].Rows[i][j].ToString();
                Debug.Log(value);
            }
        }
        fileStream.Close();
    }

读取结果:Unity3D操作数据之Excel表操作(创建、读取、写入、修改)文章来源地址https://www.toymoban.com/news/detail-448946.html

后言

  • 写入数据在第一行开始,读取数据在第0行开始
  • 遇到的问题欢迎在评论区打出,小编看到会在第一时间回复大家:
  • 工程文件地址:
    • CSDN:https://download.csdn.net/download/Xz616/87419887

到了这里,关于Unity3D操作数据之Excel表操作(创建、读取、写入、修改)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Unity3D实现登陆注册功能,实现本地存储读取

    untiy登录注册功能的实现,可以永久本地存储。C#源代码,也可以用相同的办法存储读取玩家的其他信息或自定义的游戏设置 实现了判断用户名是否存在,密码是否前后一致,密码是否正确等。 这是注册界面功能 以下是登录页功能      

    2024年02月13日
    浏览(48)
  • unity3D基础操作之01--unity3d窗口界面介绍

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 1、Scene场景编辑窗口; 2、Game游戏运行窗口; 3、Hierarchy场景物体列表窗口; 4、Project项目资源列表窗口; 5、Inspector属性编辑列表窗口; 6、其他常调节窗口 在屏幕左上方为场景编辑窗口Scene,在场景编

    2024年02月06日
    浏览(80)
  • 3dsmax模型导入unity3d新手操作

    第一次接触3dsmax真是头大,网上很多模型直接给的是3dsmax格式无法在unity3d中使用,要导出FBX格式。本以为很简单的导入导出就行,没想到困难重重😵 首先在模型导入3dsmax时就发现没有贴图, 但明明资源管理中(光学/位置路径,网上找到的大多是这个方法)是存在的,原来

    2024年02月16日
    浏览(63)
  • 使用Unity3D创建一个立方体(Cube)游戏对象并启动Unity

    Unity3D是一个强大的游戏开发引擎,可以用来创建各种类型的游戏和交互应用程序。在本文中,我们将探讨如何使用Unity3D创建一个立方体(Cube)游戏对象,并启动Unity编辑器。 首先,确保你已经安装了Unity3D并且已经在你的计算机上成功启动。然后,按照以下步骤进行操作:

    2024年02月05日
    浏览(90)
  • 【Unity3D】Unity 3D 连接 MySQL 数据库

    1.Navicat准备 test 数据库,并在test数据库下创建 user 数据表,预先插入测试数据。 2.启动 Unity Hub 新建一个项目,然后在Unity编辑器的 Project视图 中,右击新建一个 Plugins 文件夹将连接 MySQL的驱动包 导入(附加驱动包链接),之后Unity会自动引用它们。 3.在 Hierarchy视图 中点击

    2024年02月22日
    浏览(58)
  • 【Unity3D】如何在uniyt中切换画布实现切换界面的交互操作

    我们在切换不同界面的时候,时常会用到切换场景的操作。 如果在一个场景里就可以去实现切换界面的时候,若再使用切换场景来实现,会占用很大的空间,不妨在一个场景里使用切换画布的方法来实现切换界面的交互操作。  效果如图所示:  在第一个画布中,点击按钮后

    2024年02月12日
    浏览(47)
  • 使用Unity连接MySQL数据库(Unity3D)

    在Unity开发中,连接数据库是非常常见且重要的任务之一。本文将介绍如何在Unity中连接MySQL数据库,并提供相应的源代码示例。 步骤1:准备工作 在开始之前,确保你已经安装了Unity编辑器,并且有一个MySQL数据库可供连接。你可以使用XAMPP等工具来搭建本地的MySQL服务器,或

    2024年02月04日
    浏览(41)
  • unity3D中用Mesh Collider创建的碰撞体与物体模型位置有偏差的解决方法

    1.相信很多小伙伴在使用Mesh Collider时都遇到过下面这个情况: 1.解决方法:在这个对象Alpaca下面新建一个空对象Collider,我们把Mesh Collider添加到这个空对象上面就可以调整碰撞体的位置了  3.完成效果:

    2024年02月13日
    浏览(56)
  • 【Unity3D】UI Toolkit数据动态绑定

            本文将实现 cvs 表格数据与 UI Toolkit 元素的动态绑定。         如果读者对 UI Toolkit 不是太了解,可以参考以下内容。 UI Toolkit简介 UI Toolkit容器 UI Toolkit元素 UI Toolkit样式选择器 UI Toolkit自定义元素         本文完整资源见→UI Toolkit数据动态绑定。 2.1 UI 搭建

    2024年02月08日
    浏览(58)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包