109 lines
3.5 KiB
C#
109 lines
3.5 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using OfficeOpenXml;
|
|
using Script.UI;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
using ZXL.Excel;
|
|
using ZXL.ID;
|
|
|
|
public class ExcelManager : SingleManager<ExcelManager>
|
|
{
|
|
private Player_Data _playerData;
|
|
private TeamData_Data _teamData;
|
|
private CultrueData_Data _cultrueData;
|
|
|
|
public List<string> GetAllPlayerID => _playerData.GetAllID();
|
|
|
|
public Player_DataInfo GetPlayerInfo => _playerData.GetAndRemove();
|
|
public int GetPlayerCount => _playerData.GetCount();
|
|
|
|
public TeamData_DataInfo GetTeamRandomInfo => _teamData.RandomGet();
|
|
public int GetTeamInfoCount => _teamData.data.Count;
|
|
public List<TeamData_DataInfo> GetTeamDatas => _teamData.data;
|
|
|
|
public CultrueData_DataInfo GetCultureRandomInfo => _cultrueData.RandomGet();
|
|
public int GetCultureInfoCount => _cultrueData.data.Count;
|
|
public List<CultrueData_DataInfo> GetCultureDatas => _cultrueData.data;
|
|
|
|
public ExcelManager()
|
|
{
|
|
var payerData = ReadExcel.SelectPlayerTable("PlayerData");
|
|
_playerData = new Player_Data(payerData);
|
|
|
|
var teamDataDataInfos = ReadExcel.SelectTeamTable("TeamData");
|
|
_teamData = new TeamData_Data(teamDataDataInfos);
|
|
|
|
var cultrueDataDataInfos = ReadExcel.SelectCultrueTable("CultureData");
|
|
_cultrueData = new CultrueData_Data(cultrueDataDataInfos);
|
|
|
|
Debug.Log("excel data load finish !!");
|
|
}
|
|
|
|
#region 存入内容并导出Excel文件
|
|
|
|
public void SaveAndExp(SaveExcelData data)
|
|
{
|
|
string path = Application.streamingAssetsPath + "/程序输出数据" + DateTime.Now.Ticks + ".xlsx";
|
|
FileStream fs = new FileStream(path, FileMode.OpenOrCreate);
|
|
using (var pck = new ExcelPackage(fs))
|
|
{
|
|
var sheet = pck.Workbook.Worksheets.Add("Sheet1");
|
|
|
|
for (int i = 0; i < data.hands.Length; i++)
|
|
{
|
|
sheet.SetValue(1, i + 2, data.hands[i]);
|
|
}
|
|
|
|
for (var i = 0; i < data.infos.Count; i++)
|
|
{
|
|
for (var j = 0; j < data.infos[i].strings.Length; j++)
|
|
{
|
|
//第0行、列留白
|
|
// sheet.Cells[i + 2, j + 2].Value = data.infos[i].strings[j];
|
|
|
|
sheet.SetValue(i + 2, j + 2, data.infos[i].strings[j]);
|
|
}
|
|
}
|
|
|
|
pck.Save();
|
|
}
|
|
|
|
fs.Dispose();
|
|
}
|
|
|
|
public void SaveAndExpIndex(SaveExcelData.SaveExcelDataInfo info, int index)
|
|
{
|
|
string path = Application.streamingAssetsPath + "/程序输出数据" + DateTime.Now.Ticks + ".xlsx";
|
|
FileStream fs = new FileStream(path, FileMode.OpenOrCreate);
|
|
using (var pck = new ExcelPackage(fs))
|
|
{
|
|
var sheet = pck.Workbook.Worksheets.Add("Sheet1");
|
|
|
|
if (index == 0)
|
|
{
|
|
string[] hands = new[] { "选手ID", "选手(如没有内容属于正常情况)", "团型", "文化元素" };
|
|
for (int i = 0; i < hands.Length; i++)
|
|
{
|
|
sheet.SetValue(1, i + 2, hands[i]);
|
|
}
|
|
}
|
|
|
|
for (var j = 0; j < info.strings.Length; j++)
|
|
{
|
|
//第0行、列留白
|
|
// sheet.Cells[i + 2, j + 2].Value = data.infos[i].strings[j];
|
|
|
|
sheet.SetValue(index + 2, j + 2, info.strings[j]);
|
|
}
|
|
|
|
pck.Save();
|
|
}
|
|
|
|
fs.Dispose();
|
|
}
|
|
|
|
#endregion
|
|
} |