Unity 创建、读取、改写Excel表格数据

1.导入EPPlus.dll、Excel.dll、Mysql.Data.dll、System.Data.dll;(我这里用的是:Unity2017.3.0)

2.代码如下:

cs 复制代码
using System.Data;
using System.IO;
using UnityEngine;
using OfficeOpenXml;
using UnityEditor;
using Excel;

public class ExcelManager : MonoBehaviour
{
    #region 创建Excel表格
    [MenuItem("Excel操作/创建Excel表格")]
    static void 创建Excel表格()
    {
        string _filePath = Application.streamingAssetsPath + "/学生信息.xlsx";
        string _sheetName = "详情";

        FileInfo _excelName = new FileInfo(_filePath);
        if (_excelName.Exists)
        {
            //删除旧文件,并创建一个新的 excel 文件。
            _excelName.Delete();
            _excelName = new FileInfo(_filePath);
        }

        //通过ExcelPackage打开文件
        using (ExcelPackage package = new ExcelPackage(_excelName))
        {
            //在 excel 空文件添加新 sheet,并设置名称。
            ExcelWorksheet worksheet = package.Workbook.Worksheets.Add(_sheetName);

            //添加列名
            worksheet.Cells[1, 1].Value = "学号";
            worksheet.Cells[1, 2].Value = "姓名";
            worksheet.Cells[1, 3].Value = "性别";

            //添加一行数据
            worksheet.Cells[2, 1].Value = 100001;
            worksheet.Cells[2, 2].Value = "张三";
            worksheet.Cells[2, 3].Value = "男";

            //添加一行数据
            worksheet.Cells[3, 1].Value = 100002;
            worksheet.Cells[3, 2].Value = "李四";
            worksheet.Cells[3, 3].Value = "女";

            //添加一行数据
            worksheet.Cells[4, 1].Value = 120033;
            worksheet.Cells[4, 2].Value = "Saw";
            worksheet.Cells[4, 3].Value = "男";

            //保存excel
            package.Save();
        }
    }
    #endregion


    #region 读取Excel表格
    [MenuItem("Excel操作/读取Excel表格")]
    static void 读取Excel表格()
    {
        DataRowCollection _dataRowCollection = ReadExcel(Application.streamingAssetsPath + "/学生信息.xlsx");
        for (int i = 0; i < _dataRowCollection.Count; i++)
        {
            Debug.Log(_dataRowCollection[i][0] + " " + _dataRowCollection[i][1] + " " + _dataRowCollection[i][2]);
        }
    }

    //通过表的索引,返回一个DataRowCollection表数据对象
    static DataRowCollection ReadExcel(string _path, int _sheetIndex = 0)
    {
        FileStream stream = File.Open(_path, FileMode.Open, FileAccess.Read, FileShare.Read);
        IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
        DataSet result = excelReader.AsDataSet();
        return result.Tables[_sheetIndex].Rows;
    }

    //通过表的名字,返回一个DataRowCollection表数据对象
    private DataRowCollection ReadExcel(string _path, string _sheetName)
    {
        FileStream stream = File.Open(_path, FileMode.Open, FileAccess.Read, FileShare.Read);
        IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
        DataSet result = excelReader.AsDataSet();
        return result.Tables[_sheetName].Rows;
    }
    #endregion


    #region 改写Excel表格
    [MenuItem("Excel操作/改写Excel表格")]
    static void 改写Excel表格()
    {
        string path = Application.streamingAssetsPath + "/学生信息.xlsx";
        FileInfo _excelName = new FileInfo(path);
        using (ExcelPackage package = new ExcelPackage(_excelName))
        {
            ExcelWorksheet worksheet = package.Workbook.Worksheets["详情"];
            //修改某一行的数据
            worksheet.Cells[4, 3].Value = "人妖";
            //保存excel
            package.Save();
        }
    }
    #endregion
}

dll资源文件夹:https://download.csdn.net/download/qq_41603955/90677810

相关推荐
萘柰奈36 分钟前
Unity学习----【进阶】Addressables(二)--加载资源与打包及更新
学习·unity
lvcoc6 小时前
unity 接入火山引擎API,包括即梦AI
windows·unity·ai·火山引擎
l1t12 小时前
张泽鹏先生手搓的纯ANSI处理UTF-8与美团龙猫调用expat库读取Excel xml对比测试
xml·人工智能·excel·utf8·expat
王家视频教程图书馆12 小时前
2025年最新 unityHub游戏引擎开发2d手机游戏和桌面游戏教程
游戏·unity·游戏引擎
SmalBox13 小时前
【URP】法线贴图为什么主要是蓝色的?
unity·渲染
Source.Liu18 小时前
【Python自动化】 21 Pandas Excel 操作完整指南
python·excel·pandas
会飞的小菠菜1 天前
如何根据Excel数据表生成多个合同、工作证、录取通知书等word文件?
word·excel·模板·数据表·生成文件
Access开发易登软件1 天前
Access开发导出PDF的N种姿势,你get了吗?
后端·低代码·pdf·excel·vba·access·access开发
課代表1 天前
VBA 中的 Excel 工作表函数
excel·vba·函数·对象·属性·range·静态变量
UrbanJazzerati2 天前
掌握 xlwings 的 used_range:高效处理 Excel 数据区域
python·面试·excel