目次
1.まず Unity に EPPlus と Excel をインポートする
2. スクリプトを作成し、名前空間
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.フォームの操作
- int インデックスを使用して、Excel ファイルの N 番目のテーブルを取得します
。- Excel テーブル
ExcelWorksheet worksheet1 = excelPackage.Workbook.Worksheets["Sheet1"];を取得します。- 現在のシート数を取得
int i = excelPackage.Workbook.Worksheets.Count;- テーブルを追加する
ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets.Add("Sheet2");- テーブル名に色を追加 (ヘッダーの色を緑に変更)
worksheet.TabColor = System.Drawing.Color.ForestGreen;
2. データ処理
- テーブルの最大の行と列を取得します
int row = worksheet.Dimension.End.Row;//row
int column = worksheet.Dimension.End.Column;//column- x 番目のセルの内容を取得します
worksheet.Cells[1, 1].Value.ToString();//[1,1] の位置にある内容を取得します。これは、書き込み (ToString なしで書き込む) または読み取ることができます。
3.Excelでの操作
- Excel ファイルを取得する
ExcelPackage excelPackage = new ExcelPackage(fileInfo);- 変更した Excel ファイルを保存する
excelPackage.Save();//
ExcelPackage.SaveAs();//保存
6. ヒント
- フォームを変更する場合は、操作を保存してフォームを保存することを忘れないでください
以下の EPPlus の GitHub: