public override Dictionary <string, List <List <object> > > ReadFromExcels(string filename) { Dictionary <string, List <List <object> > > cache = new Dictionary <string, List <List <object> > >(); ActionExcelRead(filename, workbook => { foreach (var item in workbook.Sheets) { var workSheet = (Worksheet)item; Ldebug.Log(workSheet.Name); var hangCount = workSheet.UsedRange.Cells.Rows.Count; var lieCount = workSheet.UsedRange.Cells.Columns.Count; if (hangCount == 0 || lieCount == 0) { continue; } List <object[, ]> tempList = new List <object[, ]>(); for (int j = 0; j < lieCount; j++) { tempList.Add((object[, ])workSheet.Cells.Range[zimu[j] + "1", zimu[j] + hangCount].Value); } Dictionary <object, List <object> > dic = new Dictionary <object, List <object> >(); foreach (object[,] objectse in tempList) { if (objectse == null) { continue; } int index = 0; foreach (object o in objectse) { index++; List <object> res = null; if (dic.TryGetValue(index, out res)) { res.Add(o); } else { dic.Add(index, new List <object> { o }); } } } if (dic.Count == 0) { continue; } cache[workSheet.Name] = dic.Values.ToList(); } }); return(cache); }
public override void WriteToExcel(string filename, List <List <object> > vals) { //http://bbs.csdn.net/topics/390201171 ActionExcelWrite(filename, workbook => { var workSheet = (Worksheet)workbook.ActiveSheet; var f = Path.GetFileNameWithoutExtension(filename); Ldebug.Log(workSheet.Name); //第一种:Excel.Application的Cell by Cell for (int j = 0; j < vals.Count; j++) { for (int i = 0; i < vals[j].Count; i++) { workSheet.Cells[j + 1, i + 1] = vals[j][i]; } Console.WriteLine(f + "/" + j + "/" + vals.Count); } workSheet = null; }); }