UnityでのExcel操作(EPPlus利用)

目次

1.EPPlusをインポート

1.まず Unity に EPPlus と Excel をインポートする

2. スクリプトを作成し、名前空間

2.エクセルを読む

1.Excel情報ファイルを取得する

2.Excelファイル情報を開いてテーブルを開く

3. この Excel のどのテーブルを開く必要があるか

4. データの読み取り

5.結果を出力する

6. 完全なコード

3.エクセルに書き込む

1.最初と2番目のステップは読書と同じです

2. データの書き込み

3. フォーム記入後

4. 完全なコード

4. テーブルを作成する

1.最初と2番目のステップは読書と同じです

2. テーブルを作成する

3. 良いフォームを作る

5. 共通 API

1.フォームの操作

2. データ処理

3.Excelでの操作

6. ヒント


1.EPPlusをインポート

1.まず Unity に EPPlus と Excel をインポートする

2. スクリプトを作成して名前空間を導入する

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


2.エクセルを読む

 

- フォームデータ

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出数据
            }
        }
    }
}


3.エクセルに書き込む

- 初期フォーム

1.最初と2番目のステップは読書と同じです

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();//写入后保存表格
        }
    }

}


4. テーブルを作成する

1.最初と2番目のステップは読書と同じです

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. 良いフォームを作る


5. 共通 API

1.フォームの操作

  1. int インデックスを使用して、Excel ファイルの N 番目のテーブルを取得します
  2. 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;//row
    int column = worksheet.Dimension.End.Column;//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();//保存


6. ヒント

  1. フォームを変更する場合は、操作を保存してフォームを保存することを忘れないでください

以下の EPPlus の GitHub:

GitHub - JanKallman/EPPlus: .NET を使用して高度な Excel スプレッドシートを作成する .NET を使用して高度な Excel スプレッドシートを作成します。GitHub でアカウントを作成して、JanKallman/EPPlus の開発に貢献してください。https://github.com/JanKallman/EPPlus

おすすめ

転載: blog.csdn.net/SodasZ/article/details/125322835