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 { private Player_Data _playerData; private TeamData_Data _teamData; private CultrueData_Data _cultrueData; public List GetAllPlayerID => _playerData.GetAllID(); // public Player_DataInfo GetPlayerInfo => _playerData.GetAndRemove(); public TeamData_DataInfo GetTeamRandomInfo => _teamData.RandomGet(); public int GetTeamInfoCount => _teamData.data.Count; public List GetTeamDatas => _teamData.data; public CultrueData_DataInfo GetCultureRandomInfo => _cultrueData.RandomGet(); public int GetCultureInfoCount => _cultrueData.data.Count; public List 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 }