Unity用NPOI创建Exect表,保存数据,和修改删除数据。以及打包后的坑——无法打开新创建的Exect表

这篇具有很好参考价值的文章主要介绍了Unity用NPOI创建Exect表,保存数据,和修改删除数据。以及打包后的坑——无法打开新创建的Exect表。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

先说坑花了一下午才找到解决方法解决,

在Unity编辑模式下点击物体创建对应的表,获取物体名字与在InputText填写的注释数据。然后保存。创建Exect表可以打开,打包PC后,点击物体创建的表,打不开文件破损

解决方法:到unity编辑器所在路径中去找这个路径
\Editor\Data\MonoBleedingEdge\lib\mono\unityaot 或者 unityjit 文件夹或者unityaot-win32
找到里边以”I18N“开头的这四个dll文件

Unity用NPOI创建Exect表,保存数据,和修改删除数据。以及打包后的坑——无法打开新创建的Exect表,unity,游戏引擎

 

在这里感谢大佬:LAIALAIA

解决方法思路原版链接:unity 使用EPPlus对Excel的创建、写入、读取操作 - 哒哒哒~~~ - 博客园 (cnblogs.com)

创建读取删除Execel

 // 初始化 Excel 文件
 

 // 初始化 Excel 文件
        public void InitializeExcelFile(string ExcelFileName)
        {
        // 获取应用的数据文件夹路径
        string dataPath = Application.streamingAssetsPath + "/Data";
        // 合并路径,得到完整的 Excel 文件路径
        excelFilePath = Path.Combine(dataPath, ExcelFileName + ".xls");
        // 创建一个文件信息对象来检查 Excel 文件是否存在
        FileInfo excelFile = new FileInfo(excelFilePath);
        // 隐藏输入框
        inputField.gameObject.SetActive(false);
        // 如果 Excel 文件不存在,创建一个新的 Excel 工作簿,并添加一个工作表
        if (!excelFile.Exists)
        {
            // 创建一个新的 Excel 工作簿对象
            workbook = new XSSFWorkbook();
            // 在工作簿中创建一个名为 "Comments" 的工作表
            sheet = (XSSFSheet)workbook.CreateSheet(ExcelFileName);
            // 在工作表的第一行(行索引为0)上创建一个新的行对象,并在该行中创建一个新的单元格对象(列索引为0)
            // 然后将 "Object Name" 这个字符串设置为单元格的值
            sheet.CreateRow(0).CreateCell(0).SetCellValue("Object Name");
            // 获取工作表的第一行(行索引为0),然后在该行中创建一个新的单元格对象(列索引为1)
            // 然后将 "Comment" 这个字符串设置为单元格的值
            sheet.GetRow(0).CreateCell(1).SetCellValue("Comment");
        }
        else
        {
            using (FileStream fs = new FileStream(excelFilePath, FileMode.Open, FileAccess.Read))
            {
                workbook = new XSSFWorkbook(fs);
                sheet = (XSSFSheet)workbook.GetSheetAt(0);
            }
        }
    }

删除文章来源地址https://www.toymoban.com/news/detail-652243.html

   private void DeleteObjectFromExcel()
    {
        if (workbook == null || lastClickedObject == null)
        {
            Debug.LogError("Excel workbook is not initialized or no object clicked.");
            return;
        }

        string objectName = lastClickedObject.name;

        int rowIndex = FindRowIndexByObjectName(objectName);
        if (rowIndex >= 0)
        {
            // 删除选定的行
            sheet.RemoveRow(sheet.GetRow(rowIndex));

            // 清空 InputField 的文本内容
            inputField.text = "";

            for (int i = rowIndex + 1; i <= sheet.LastRowNum; i++)
            {
                IRow currentRow = sheet.GetRow(i);

                // 跳过已删除的行
                if (currentRow == null)
                {
                    continue;
                }

                IRow newRow = sheet.CreateRow(i - 1); // 创建一个新行
                for (int j = 0; j < currentRow.LastCellNum; j++)
                {
                    ICell currentCell = currentRow.GetCell(j);
                    ICell newCell = newRow.CreateCell(j); // 创建一个新单元格
                    if (currentCell != null)
                    {
                        newCell.SetCellValue(currentCell.ToString());
                    }
                }
            }

            // 清除最后一行
            sheet.RemoveRow(sheet.GetRow(sheet.LastRowNum));


            // 保存修改后的文件
            using (FileStream fs = new FileStream(excelFilePath, FileMode.Create, FileAccess.Write))
            {
                workbook.Write(fs);
            }
        }
    }

到了这里,关于Unity用NPOI创建Exect表,保存数据,和修改删除数据。以及打包后的坑——无法打开新创建的Exect表的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 数据库实验2 创建数据表修改数据表和删除数据表

    实验2 创建数据表修改数据表和删除数据表 实验类型: ●验证性实验  ○综合性实验  ○设计性实验 实验目的:      (1)了解数据表的结构特点。      (2)掌握表中列定义时所用到的各种数据类型。      (3)学会使用企业管理器(即MSSMS-----Microsoft SQL Server Manag

    2024年02月07日
    浏览(61)
  • ②【MySQL表操作】 数据库表的创建、查询、修改、删除

    个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 数据库表中的数据类型 : 数值类型: TINYINT :小整数 SMALLINT :大整数 MEDIUMINT :大整数,范围大于SMALLINT

    2024年02月06日
    浏览(48)
  • SQL Server实战二:创建、修改、复制、删除数据库表并加以数据处理

      本文介绍基于 Microsoft SQL Server 软件,实现数据库 表 的 创建、修改、复制、删除 与 表数据处理 的方法。 目录 1 交互式创建数据库表T 2 交互式创建数据库表S 3 T-SQL创建数据库表C 4 T-SQL创建数据库表SC 5 T-SQL创建数据库表TC 6 交互式向数据库表S中添加新列NATIVE 7 交互式修改

    2024年04月26日
    浏览(39)
  • MySQL-创建和管理表:基础知识、创建和管理数据库、创建表、修改表、重命名表、删除表、清空表、拓展

    注:此为笔者学习尚硅谷-宋红康MySQL的笔记,其中包含个人的笔记和理解,仅做学习笔记之用,更多详细资讯请出门左拐B站:尚硅谷!!! 1.1 一条数据存储的过程 存储数据是处理数据的第一步 。只有正确地把数据存储起来,我们才能进行有效的处理和分析。否则,只能是一团

    2024年04月11日
    浏览(81)
  • 3、HBase的java API基本操作(创建、删除表以及对数据的添加、删除、查询以及多条件查询)

    1、hbase-2.1.0介绍及分布式集群部署、HA集群部署、验证、硬件配置推荐 2、hbase-2.1.0 shell基本操作详解 3、HBase的java API基本操作(创建、删除表以及对数据的添加、删除、查询以及多条件查询) 4、HBase使用(namespace、数据分区、rowkey设计、原生api访问hbase) 5、Apache Phoenix(5.0.0-5.

    2024年02月08日
    浏览(54)
  • Iceberg从入门到精通系列之三:创建Iceberg表、修改表结构、插入数据、删除表

    Hive语法创建分区表,不会在元数据创建分区,而是将分区数据转换为Iceberg标识分区。 这种情况下不能使用Iceberg的分区转换,例如:days(timestamp),如果想要使用Iceberg格式表的分区转换标识分区,需要使用Spark或者Flink引擎创建表。 只支持HiveCatalog表修改表属性,Iceberg表属性和

    2024年02月11日
    浏览(77)
  • Android——Sqlite数据库——实现联系人信息的添加、查询、修改以及删除功能

        掌握常用布局和基本控件的使用方法     掌握界面图像显示的使用方法     掌握SQLite数据库的创建和基本操作方法 通过线性布局和相对布局来搭建Activity界面,在MainActivity中编写逻辑代码,运行程序,输入两条联系人信息分别点击“添加”“查询”“修改”“

    2024年02月07日
    浏览(40)
  • MySQL数据库——存储过程-介绍以及基本语法(特点、创建、调用、查看、删除、示例)

    目录 介绍 特点 基本语法 创建 调用 查看 删除  示例  存储过程是 事先经过编译 并 存储在数据库 中的一段 SQL 语句的 集合 ,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。 存储过程思想

    2024年02月06日
    浏览(56)
  • 在Unity中使用EPPlus库NPOI库写入Excel数据

    Unity版本: 2021.3.25f1 1.EPPlus库: a.引用EPPlus库:首先,需要在Unity项目中引用EPPlus库。可以通过从官方网站(https://epplussoftware.com/)下载EPPlus库的最新版本,并将其添加到Unity项目中。 b.创建Excel数据:在Unity中,使用C#脚本来创建Excel数据。在示例代码中,创建了一个名为MemorySt

    2024年01月19日
    浏览(56)
  • 09、Kafka ------ 通过修改保存时间来删除消息(retention.ms 配置)

    Kafka并没有提供直接删除特定主题下消息的方法,只能是强制让消息过期之后,再来删除消息。 因此需要指定如下两个配置: 控制将指定主题下消息的保存时间设为一个很短时间: retention.ms(为特定主题设置) 控制 Kafka 尽快去检查消息是否过期(默认是5分钟检查一次)。

    2024年01月25日
    浏览(38)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包