自学内容网 自学内容网

【插件】【干货】用EPPlus在Unity中读写Excel表

EPPlus是什么我就不说了,你都点进来了肯定知道

几个常用的api

1.index下标都是从1开始的

2.可以读取任意单元格上的任意内容,不需要给excel表写规则

但是如果你写了规则,就需要自己用额外的代码 --- 数据结构去实现

3.打开excel表 ExcelPackage package = new ExcelPackage(需要打开的excel文件)

4.  获取工作表  ExcelWorksheet sheet = package.Workbook.Worksheets[index];

5.获取工作表的行数和列数   sheet.Dimension.End.Row;     sheet.Dimension.End.Column;

6.将数据写入表 sheet.Cells[Row, Column].Value =value ;

7.从集合加载数据到工作表

 var data = new List<Person> { new Person { Name = "Alice", Age = 30 } };
 sheet.Cells["A1"].LoadFromCollection(data, true);

8.从文本文件中加载数据

sheet.Cells["A1"].LoadFromText("Name, Age\nAlice, 30\nBob, 25");

9.保存表 package.Save();

导入

EPPlusSoftware/EPPlus: EPPlus-Excel spreadsheets for .NET (github.com)

Excel表

读表例子

using OfficeOpenXml;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
using OfficeOpenXml;

public class Read : MonoBehaviour
{
    // Unity的Start方法,在游戏开始时调用
    void Start() {
        ReadExcel(); // 调用读取Excel文件的方法
    }
    
    // 读取Excel文件的方法
    void ReadExcel() {
        // 获取Excel文件的路径
        string path = Application.dataPath + "/Excel/Text.xlsx";
        FileInfo fileInfo = new FileInfo(path); // 创建FileInfo对象

        // 使用EPPlus库打开Excel文件
        using (ExcelPackage package = new ExcelPackage(fileInfo)) {
            // 获取第一个工作表
            ExcelWorksheet sheet = package.Workbook.Worksheets[1];
            // 获取工作表的行数和列数
            int rowCount = sheet.Dimension.End.Row;
            int colCount = sheet.Dimension.End.Column;

            // 遍历工作表的每一行和每一列
            for (int row = 1; row <= rowCount; row++) // 从第二行开始,跳过标题行
            {
                for (int col = 1; col <= colCount; col++) {
                    // 如果单元格不为空,打印其内容
                    if (sheet.Cells[row, col].Value != null) {
                        Debug.Log(sheet.Cells[row, col].Value.ToString());
                    }
                }
                
            }
        }
    }
}

写表例子

using System.IO; // 引入系统IO命名空间,用于文件操作
using UnityEngine; // 引入Unity引擎命名空间
using OfficeOpenXml; // 引入EPPlus命名空间,用于操作Excel文件

public class ExcelHandler : MonoBehaviour
{
    void Start()
    {
        
        WriteExcel();
    }

    void WriteExcel()
    {
        string path = Application.dataPath + "/Excel/Text.xlsx";
        FileInfo fileInfo = new FileInfo(path);

        using (ExcelPackage package = new ExcelPackage(fileInfo))
        {
            ExcelWorksheet sheet = package.Workbook.Worksheets.Count == 0 ? package.Workbook.Worksheets.Add("Sheet1") : package.Workbook.Worksheets[0];

            sheet.Cells[1, 1].Value = "ID";
            sheet.Cells[1, 2].Value = "Name";
            sheet.Cells[1, 3].Value = "Age";

            sheet.Cells[2, 1].Value = 1;
            sheet.Cells[2, 2].Value = "Alice";
            sheet.Cells[2, 3].Value = 30;

            sheet.Cells[3, 1].Value = 2;
            sheet.Cells[3, 2].Value = "Bob";
            sheet.Cells[3, 3].Value = 25;

            package.Save();
        }

        Debug.Log("Excel文件写入完成!");
    }
}


原文地址:https://blog.csdn.net/2301_77947509/article/details/142218932

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!