2023-12-10 12:28:20 +08:00
|
|
|
|
using UnityEngine;
|
|
|
|
|
using System.Data;
|
|
|
|
|
using System.IO;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using OfficeOpenXml;
|
|
|
|
|
using OfficeOpenXml.Table;
|
|
|
|
|
using Unity.VisualScripting;
|
|
|
|
|
|
|
|
|
|
namespace ZXL.Excel
|
|
|
|
|
{
|
|
|
|
|
public class ReadExcel
|
|
|
|
|
{
|
|
|
|
|
//public static string Excel = "Book";
|
|
|
|
|
|
|
|
|
|
public static List<Player_DataInfo> SelectPlayerTable(string name, string sheetName = "Sheet1")
|
|
|
|
|
{
|
|
|
|
|
string excelName = name + ".xlsx";
|
|
|
|
|
|
|
|
|
|
List<Player_DataInfo> array = new List<Player_DataInfo>();
|
|
|
|
|
|
|
|
|
|
var objs = ReadExcel.Read(excelName, sheetName);
|
|
|
|
|
|
|
|
|
|
var xLeng = objs.GetLength(1);
|
|
|
|
|
var yLeng = objs.GetLength(0);
|
|
|
|
|
|
|
|
|
|
for (var i = 2; i < yLeng; i++) //<2F><>
|
|
|
|
|
{
|
|
|
|
|
string id = objs[i, 1].ToString();
|
|
|
|
|
string playerName = objs[i, 2].ToString();
|
|
|
|
|
Player_DataInfo info = new Player_DataInfo(
|
|
|
|
|
id,
|
|
|
|
|
playerName
|
|
|
|
|
);
|
|
|
|
|
array.Add(info);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return array;
|
|
|
|
|
}
|
|
|
|
|
|
2023-12-12 10:29:10 +08:00
|
|
|
|
public static List<TeamData_DataInfo> SelectTeamTable(string name, string sheetName = "Sheet1")
|
2023-12-10 12:28:20 +08:00
|
|
|
|
{
|
|
|
|
|
string excelName = name + ".xlsx";
|
|
|
|
|
|
2023-12-12 10:29:10 +08:00
|
|
|
|
List<TeamData_DataInfo> array = new List<TeamData_DataInfo>();
|
2023-12-10 12:28:20 +08:00
|
|
|
|
|
|
|
|
|
var objs = ReadExcel.Read(excelName, sheetName);
|
|
|
|
|
|
|
|
|
|
var xLeng = objs.GetLength(1);
|
|
|
|
|
var yLeng = objs.GetLength(0);
|
|
|
|
|
|
|
|
|
|
for (var i = 2; i < yLeng; i++) //<2F><>
|
|
|
|
|
{
|
|
|
|
|
string id = objs[i, 1].ToString();
|
2023-12-12 10:29:10 +08:00
|
|
|
|
string teamName = objs[i, 2].ToString();
|
|
|
|
|
TeamData_DataInfo info = new TeamData_DataInfo(
|
2023-12-10 12:28:20 +08:00
|
|
|
|
id,
|
2023-12-12 10:29:10 +08:00
|
|
|
|
teamName
|
|
|
|
|
);
|
|
|
|
|
array.Add(info);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return array;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static List<CultrueData_DataInfo> SelectCultrueTable(string name, string sheetName = "Sheet1")
|
|
|
|
|
{
|
|
|
|
|
string excelName = name + ".xlsx";
|
|
|
|
|
|
|
|
|
|
List<CultrueData_DataInfo> array = new List<CultrueData_DataInfo>();
|
|
|
|
|
|
|
|
|
|
var objs = ReadExcel.Read(excelName, sheetName);
|
|
|
|
|
|
|
|
|
|
var xLeng = objs.GetLength(1);
|
|
|
|
|
var yLeng = objs.GetLength(0);
|
|
|
|
|
|
|
|
|
|
for (var i = 2; i < yLeng; i++) //<2F><>
|
|
|
|
|
{
|
|
|
|
|
string id = objs[i, 1].ToString();
|
|
|
|
|
string cultrueName = objs[i, 2].ToString();
|
|
|
|
|
CultrueData_DataInfo info = new CultrueData_DataInfo(
|
|
|
|
|
id,
|
|
|
|
|
cultrueName
|
2023-12-10 12:28:20 +08:00
|
|
|
|
);
|
|
|
|
|
array.Add(info);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return array;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// <20><>ȡ Excel ; <20><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD> Excel.dll; System.Data.dll;
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="excelName">excel<65>ļ<EFBFBD><C4BC><EFBFBD></param>
|
|
|
|
|
/// <param name="sheetName">sheet<65><74><EFBFBD><EFBFBD></param>
|
|
|
|
|
/// <returns>DataRow<6F>ļ<EFBFBD><C4BC><EFBFBD></returns>
|
|
|
|
|
static object[,] Read(string excelName, string sheetName)
|
|
|
|
|
{
|
|
|
|
|
object[,] objs = new object[,] { };
|
|
|
|
|
|
|
|
|
|
using FileStream fs = new FileStream(Application.streamingAssetsPath + "/Excel/" + excelName, FileMode.Open, FileAccess.Read, FileShare.Read);
|
|
|
|
|
using (var pck = new ExcelPackage(fs))
|
|
|
|
|
{
|
|
|
|
|
var sheet = pck.Workbook.Worksheets[sheetName];
|
|
|
|
|
|
|
|
|
|
var excelRange = sheet.Cells["b:g"];
|
|
|
|
|
int row = excelRange.Count(x => x.Address.Length == 2 && x.Address[1] == '2');
|
|
|
|
|
var enumerable = excelRange.Select((x, i) =>
|
|
|
|
|
{
|
|
|
|
|
if (x.Address.Length == 2 && x.Address[1] == '1')
|
|
|
|
|
{
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return x.Value.ToString();
|
|
|
|
|
});
|
|
|
|
|
var strings = enumerable.Where(x => x is not null).ToArray();
|
|
|
|
|
List<string[]> list = new List<string[]>();
|
|
|
|
|
var stringsLength = strings.Length;
|
|
|
|
|
for (var i = 0; (i + row - 1) < stringsLength; i += row)
|
|
|
|
|
{
|
|
|
|
|
var strings1 = new string[row];
|
|
|
|
|
for (var i1 = 0; i1 < row; i1++)
|
|
|
|
|
{
|
|
|
|
|
strings1[i1] = strings[i + i1];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
list.Add(strings1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
foreach (var strings1 in list)
|
|
|
|
|
{
|
|
|
|
|
Debug.Log(string.Join(',', strings1));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
objs = sheet.Cells.Value as object[,];
|
|
|
|
|
return objs;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// string path = Application.streamingAssetsPath + "/Excel/" + excelName;
|
|
|
|
|
// //string path = Application.dataPath + "/" + excelName;
|
|
|
|
|
// FileStream stream = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.Read);
|
|
|
|
|
// IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
|
|
|
|
|
//
|
|
|
|
|
// DataSet result = excelReader.AsDataSet();
|
|
|
|
|
// //int columns = result.Tables[0].Columns.Count;
|
|
|
|
|
// //int rows = result.Tables[0].Rows.Count;
|
|
|
|
|
//
|
|
|
|
|
// //tables<65><73><EFBFBD><EFBFBD><D4B0><EFBFBD>sheet<65><74><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><D4B0><EFBFBD>sheet<65><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ
|
|
|
|
|
// //return result.Tables[0].Rows;
|
|
|
|
|
// return result.Tables[sheetName].Rows;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static DataTable GetDataTable()
|
|
|
|
|
{
|
|
|
|
|
return new DataTable("");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// <20><>ȡ Excel ; <20><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD> Excel.dll; System.Data.dll;
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="excelName">excel<65>ļ<EFBFBD><C4BC><EFBFBD></param>
|
|
|
|
|
/// <param name="sheetName">sheet<65><74><EFBFBD><EFBFBD></param>
|
|
|
|
|
/// <returns>DataRow<6F>ļ<EFBFBD><C4BC><EFBFBD></returns>
|
2023-12-20 15:56:37 +08:00
|
|
|
|
// static DataRowCollection Read(string excelName, int sheetIndex)
|
|
|
|
|
// {
|
|
|
|
|
// string path = Application.streamingAssetsPath + "/Excel/" + excelName;
|
|
|
|
|
// //string path = Application.dataPath + "/" + excelName;
|
|
|
|
|
// FileStream stream = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.Read);
|
|
|
|
|
// IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
|
|
|
|
|
//
|
|
|
|
|
// DataSet result = excelReader.AsDataSet();
|
|
|
|
|
// //int columns = result.Tables[0].Columns.Count;
|
|
|
|
|
// //int rows = result.Tables[0].Rows.Count;
|
|
|
|
|
//
|
|
|
|
|
// //tables<65><73><EFBFBD><EFBFBD><D4B0><EFBFBD>sheet<65><74><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><D4B0><EFBFBD>sheet<65><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ
|
|
|
|
|
// //return result.Tables[0].Rows;
|
|
|
|
|
// return result.Tables[sheetIndex].Rows;
|
|
|
|
|
// }
|
2023-12-10 12:28:20 +08:00
|
|
|
|
}
|
2023-12-20 15:56:37 +08:00
|
|
|
|
|
2023-12-10 12:28:20 +08:00
|
|
|
|
}
|