当前位置:   article > 正文

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

unity excel

目录

一、导入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.创建脚本,引入命名空间

  1. using UnityEngine;
  2. using UnityEditor;
  3. using OfficeOpenXml;
  4. using System.IO;


二、读取Excel

 

- 表格数据

1. 获取Excel信息文件

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

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

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

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

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

4.读取数据

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

5.输出结果

6.完整代码

  1. using UnityEngine;
  2. using UnityEditor;
  3. using OfficeOpenXml;
  4. using System.IO;
  5. /// <summary> Read文件 </summary>
  6. public class ReadExcel
  7. {
  8. [MenuItem("数据持久化/1.Excel/1.ReadExcel")]
  9. public static void InputExcel()
  10. {
  11. string filePath = Application.dataPath + "/00.Excel文件夹/Read.xlsx";
  12. ///获取Excel文件的信息
  13. FileInfo fileInfo = new FileInfo(filePath);
  14. ///通过Excel文件信息,打开表格
  15. using (ExcelPackage excelPackage = new ExcelPackage(fileInfo))//using是用来强行资源释放(前括号是打开,后括号是关闭)
  16. {
  17. //取得Excel文件中的第N张表
  18. ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets[1];
  19. for (int i = 2; i < worksheet.Dimension.End.Row; i++)//End.Row获得当前表格的最大行数
  20. {
  21. Debug.Log("目标名称:" + worksheet.Cells[i, 1].Value.ToString() +
  22. " // 设备名称:" + worksheet.Cells[i, 2].Value.ToString() +
  23. " // 地址:" + worksheet.Cells[i, 3].Value.ToString());
  24. //Cells是个二维数组,第一个参数是读取第几行,第二个参数是读取第几列需要ToString出数据
  25. }
  26. }
  27. }
  28. }


三、写入Excel

- 初始表格

1.一二步和读取一样

2.写入数据

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

3.写入后表格

4.完整代码

  1. using UnityEngine;
  2. using UnityEditor;
  3. using OfficeOpenXml;
  4. using System.IO;
  5. public class WriteExcel
  6. {
  7. [MenuItem("数据持久化/1.Excel/2.WriteExcel")]
  8. public static void ChangeExcel()
  9. {
  10. string filePath = Application.dataPath + "/00.Excel文件夹/Write.xlsx";
  11. ///获取Excel文件的信息
  12. FileInfo fileInfo = new FileInfo(filePath);
  13. ///通过Excel文件信息,打开表格
  14. using (ExcelPackage excelPackage = new ExcelPackage(fileInfo))//using是用来强行资源释放(前括号是打开,后括号是关闭)
  15. {
  16. //取得Excel文件中表格叫Sheet1的表格
  17. ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets["Sheet1"];
  18. for (int i = 2; i <= 12; i++)
  19. {
  20. //直接向每个表格赋值则是写入
  21. worksheet.Cells[i, 1].Value = "目标名称" + " " + (i - 1);
  22. worksheet.Cells[i, 2].Value = "设备地址" + " " + (i - 1);
  23. worksheet.Cells[i, 3].Value = "地址" + " " + (i - 1);
  24. }
  25. excelPackage.Save();//写入后保存表格
  26. }
  27. }
  28. }


四.创建表格

1.一二步和读取一样

2.创建表格

  1. using UnityEngine;
  2. using UnityEditor;
  3. using OfficeOpenXml;
  4. using System.IO;
  5. public class Creat
  6. {
  7. [MenuItem("数据持久化/1.Excel/3.CreatExcel")]
  8. public static void ChangeExcel()
  9. {
  10. string filePath = Application.dataPath + "/00.Excel文件夹/Creat.xlsx";
  11. ///获取Excel文件的信息(文件中没有这个文件也不会报错)
  12. FileInfo fileInfo = new FileInfo(filePath);
  13. ///通过Excel文件信息,打开表格
  14. using (ExcelPackage excelPackage = new ExcelPackage(fileInfo))//在这里也没有创建Excel文件
  15. {
  16. //在新Excel文件中创建叫Sheet1的表格
  17. ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets.Add("Sheet1");
  18. worksheet.Cells[1, 1].Value = "目标名称";
  19. worksheet.Cells[1, 2].Value = "设备地址";
  20. worksheet.Cells[1, 3].Value = "地址";
  21. for (int i = 2; i <= 12; i++)
  22. {
  23. //直接向每个表格赋值则是写入
  24. worksheet.Cells[i, 1].Value = "目标名称" + " " + (i - 1);
  25. worksheet.Cells[i, 2].Value = "设备地址" + " " + (i - 1);
  26. worksheet.Cells[i, 3].Value = "地址" + " " + (i - 1);
  27. }
  28. excelPackage.Save();//写入后保存表格
  29. }
  30. //完成文件创建
  31. }
  32. }

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/118534
推荐阅读
相关标签
  

闽ICP备14008679号