Unity中对Excel的操作(使用EPPlus)

目录

一、导入EPPlus

1.首先在Unity中导入EPPlus和Excel

2.创建脚本,引入命名空间​​​​​​​

二、读取Excel

1. 获取Excel信息文件

2.打开Excel文件信息,打开表格

3.需要打开此Excel的哪张表格

4.读取数据

5.输出结果

6.完整代码

三、写入Excel

1.一二步和读取一样

2.写入数据

3.写入后表格

4.完整代码

四.创建表格

1.一二步和读取一样

2.创建表格

3.创建好的表格

五、常用API

1.对表格的操作

2.处理数据

3.对Excel的操作

六、提示


一、导入EPPlus

1.首先在Unity中导入EPPlus和Excel

2.创建脚本,引入命名空间

using UnityEngine;
using UnityEditor;
using OfficeOpenXml;
using System.IO;


二、读取Excel

 

- 表格数据

1. 获取Excel信息文件

        string filePath = Application.dataPath + "/目标名称.xlsx";//这里是文件路径
   
        //获取Excel文件的信息
        FileInfo fileInfo = new FileInfo(filePath);

2.打开Excel文件信息,打开表格

        //通过Excel文件信息,打开表格
        using (ExcelPackage excelPackage = new ExcelPackage(fileInfo))
        //using是用来强行资源释放(前括号是打开,后括号是关闭)
        {

        }

3.需要打开此Excel的哪张表格

        using (ExcelPackage excelPackage = new ExcelPackage(fileInfo))
        {
            //取得Excel文件中的第N张表
            ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets[1];
        }

4.读取数据


        using (ExcelPackage excelPackage = new ExcelPackage(fileInfo))
        {
            ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets[1];
            for (int i = 2; i < worksheet.Dimension.End.Row; i++)
            //End.Row获得当前表格的最大行数
            {
                Debug.Log("目标名称:" + worksheet.Cells[i, 1].Value.ToString() + " // 设备名称:" + worksheet.Cells[i, 2].Value.ToString() + " // 地址:" + worksheet.Cells[i, 3].Value.ToString());
                //Cells是个二维数组,第一个参数是读取第几行,第二个参数是读取第几列需要ToString出数据
            }
        }

5.输出结果

6.完整代码

using UnityEngine;
using UnityEditor;
using OfficeOpenXml;
using System.IO;

/// <summary> Read文件 </summary>
public class ReadExcel
{

    [MenuItem("数据持久化/1.Excel/1.ReadExcel")]
    public static void InputExcel()
    {
        string filePath = Application.dataPath + "/00.Excel文件夹/Read.xlsx";

        ///获取Excel文件的信息
        FileInfo fileInfo = new FileInfo(filePath);

        ///通过Excel文件信息,打开表格
        using (ExcelPackage excelPackage = new ExcelPackage(fileInfo))//using是用来强行资源释放(前括号是打开,后括号是关闭)
        {
            //取得Excel文件中的第N张表
            ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets[1];
            for (int i = 2; i < worksheet.Dimension.End.Row; i++)//End.Row获得当前表格的最大行数
            {
                Debug.Log("目标名称:" + worksheet.Cells[i, 1].Value.ToString() + 
                    " // 设备名称:" + worksheet.Cells[i, 2].Value.ToString() + 
                    " // 地址:" + worksheet.Cells[i, 3].Value.ToString());
                //Cells是个二维数组,第一个参数是读取第几行,第二个参数是读取第几列需要ToString出数据
            }
        }
    }
}


三、写入Excel

- 初始表格

1.一二步和读取一样

2.写入数据

        ///通过Excel文件信息,打开表格
        using (ExcelPackage excelPackage = new ExcelPackage(fileInfo))//using是用来强行资源释放(前括号是打开,后括号是关闭)
        {
            //取得Excel文件中的第N张表
            ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets["Sheet1"];
            for (int i = 2; i <= 12; i++)
            {
                //直接向每个表格赋值则是写入
                worksheet.Cells[i, 1].Value = "目标名称" + " " + (i - 1);
                worksheet.Cells[i, 2].Value = "设备地址" + " " + (i - 1);
                worksheet.Cells[i, 3].Value = "地址" + " " + (i - 1);
            }
            excelPackage.Save();//写入后保存表格
        }

3.写入后表格

4.完整代码

using UnityEngine;
using UnityEditor;
using OfficeOpenXml;
using System.IO;

public class WriteExcel
{

    [MenuItem("数据持久化/1.Excel/2.WriteExcel")]
    public static void ChangeExcel()
    {
        string filePath = Application.dataPath + "/00.Excel文件夹/Write.xlsx";

        ///获取Excel文件的信息
        FileInfo fileInfo = new FileInfo(filePath);

        ///通过Excel文件信息,打开表格
        using (ExcelPackage excelPackage = new ExcelPackage(fileInfo))//using是用来强行资源释放(前括号是打开,后括号是关闭)
        {
            //取得Excel文件中表格叫Sheet1的表格
            ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets["Sheet1"];
            for (int i = 2; i <= 12; i++)
            {
                //直接向每个表格赋值则是写入
                worksheet.Cells[i, 1].Value = "目标名称" + " " + (i - 1);
                worksheet.Cells[i, 2].Value = "设备地址" + " " + (i - 1);
                worksheet.Cells[i, 3].Value = "地址" + " " + (i - 1);
            }
            excelPackage.Save();//写入后保存表格
        }
    }

}


四.创建表格

1.一二步和读取一样

2.创建表格

using UnityEngine;
using UnityEditor;
using OfficeOpenXml;
using System.IO;

public class Creat
{
    [MenuItem("数据持久化/1.Excel/3.CreatExcel")]
    public static void ChangeExcel()
    {
        string filePath = Application.dataPath + "/00.Excel文件夹/Creat.xlsx";

        ///获取Excel文件的信息(文件中没有这个文件也不会报错)
        FileInfo fileInfo = new FileInfo(filePath);

        ///通过Excel文件信息,打开表格
        using (ExcelPackage excelPackage = new ExcelPackage(fileInfo))//在这里也没有创建Excel文件
        {
            //在新Excel文件中创建叫Sheet1的表格
            ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets.Add("Sheet1");
            worksheet.Cells[1, 1].Value = "目标名称";
            worksheet.Cells[1, 2].Value = "设备地址";
            worksheet.Cells[1, 3].Value = "地址";
            for (int i = 2; i <= 12; i++)
            {
                //直接向每个表格赋值则是写入
                worksheet.Cells[i, 1].Value = "目标名称" + " " + (i - 1);
                worksheet.Cells[i, 2].Value = "设备地址" + " " + (i - 1);
                worksheet.Cells[i, 3].Value = "地址" + " " + (i - 1);
            }
            excelPackage.Save();//写入后保存表格
        }
        //完成文件创建
    }
}

3.创建好的表格


五、常用API

1.对表格的操作

  1. 通过int索引取得Excel文件中的第N张表
    ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets[1]
  2. 通过string获得Excel的表格
    ExcelWorksheet worksheet1 = excelPackage.Workbook.Worksheets["Sheet1"];
  3. 获得当前表格数目
    int i = excelPackage.Workbook.Worksheets.Count;
  4. 添加一张表格
    ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets.Add("Sheet2");
  5. 给表格名称添加颜色(表头颜色换成绿色)
    worksheet.TabColor = System.Drawing.Color.ForestGreen;

2.处理数据

  1. 获得表格中最大行和列
    int row = worksheet.Dimension.End.Row;//行
    int column = worksheet.Dimension.End.Column;//列
  2. 获得第x各格子中的内容
    worksheet.Cells[1, 1].Value.ToString();//获得[1,1]位置的内容,可以写入(写入不加ToString)也可以读取 

3.对Excel的操作

  1. 获得一个Excel文件
    ExcelPackage excelPackage = new ExcelPackage(fileInfo);
  2. 保存修改后的Excel文件
    excelPackage.Save();//保存
    excelPackage.SaveAs();//另存为


六、提示

  1. 若修改表格,记得Save执行保存表格的操作

下面的EPPlus的GitHUb:

GitHub - JanKallman/EPPlus: Create advanced Excel spreadsheets using .NETCreate advanced Excel spreadsheets using .NET. Contribute to JanKallman/EPPlus development by creating an account on GitHub.https://github.com/JanKallman/EPPlus

  • 14
    点赞
  • 66
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Unity读取Excel表格可以使用第三方插件,比如ExcelDataReader和NPOI等。以下是使用ExcelDataReader读取Excel表格的步骤: 1. 在Unity导入ExcelDataReader插件。可以在Unity Asset Store搜索ExcelDataReader并下载导入。 2. 准备需要读取的Excel表格文件,将其拖拽到Unity项目的Assets文件夹。 3. 编写脚本,使用ExcelDataReader读取Excel表格数据。以下是一个简单的示例: ```csharp using UnityEngine; using System.IO; using System.Data; using ExcelDataReader; public class ExcelReader : MonoBehaviour { public string fileName; // Excel文件名 void Start() { // 构造Excel文件路径 string filePath = Path.Combine(Application.dataPath, fileName); // 读取Excel文件 FileStream stream = File.Open(filePath, FileMode.Open, FileAccess.Read); // 创建ExcelReader对象 IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream); // 读取表格数据 DataSet result = excelReader.AsDataSet(); // 输出表格数据 foreach (DataTable table in result.Tables) { foreach (DataRow row in table.Rows) { foreach (DataColumn col in table.Columns) { Debug.Log(row[col]); } } } // 关闭ExcelReader和文件流 excelReader.Close(); stream.Close(); } } ``` 在上述示例,我们使用ExcelDataReader的CreateOpenXmlReader方法创建了一个ExcelReader对象,并传入了Excel表格的FileStream。然后,我们使用AsDataSet方法读取表格数据,并通过遍历DataTable、DataRow和DataColumn输出了表格数据。最后,我们需要手动关闭ExcelReader和文件流。 需要注意的是,在使用ExcelDataReader读取Excel表格时,需要根据Excel表格的格式选择不同的读取方法。例如,如果需要读取xls格式的Excel表格,则需要使用CreateBinaryReader方法创建ExcelReader对象。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值