// TODO: localize filter? public void WriteStatsReport(string title, string cap1, string cap2, List <StatsItem> vals) { #if !NETSTANDARD if (vals == null) { return; } string fileName = AppHost.StdDialogs.GetSaveFile("", "", "Excel files (*.xls)|*.xls", 1, "xls", ""); if (string.IsNullOrEmpty(fileName)) { return; } IProgressController progress = AppHost.Progress; try { int rowsCount = vals.Count; progress.ProgressInit(LangMan.LS(LSID.LSID_MIExport) + "...", rowsCount); try { Workbook workbook = new Workbook(); Worksheet worksheet = new Worksheet(title); worksheet.Cells[0, 1] = new Cell(cap1); worksheet.Cells[0, 2] = new Cell(cap2); int row = 1; for (int i = 0; i < rowsCount; i++) { StatsItem item = vals[i]; worksheet.Cells[row, 1] = new Cell(item.Caption); worksheet.Cells[row, 2] = new Cell(item.GetDisplayString()); row++; progress.ProgressStep(); } workbook.Worksheets.Add(worksheet); workbook.Save(fileName); if (File.Exists(fileName)) { Process.Start(fileName); } } finally { progress.ProgressDone(); } } catch (Exception ex) { Logger.LogWrite("TreeStats.WriteStatsReport(): " + ex.Message); AppHost.StdDialogs.ShowError(LangMan.LS(LSID.LSID_UploadErrorInExcel)); } #endif }
private static void CheckVal(List <StatsItem> valsList, string val, GDMSex sex = GDMSex.svUnknown) { if (sex == GDMSex.svUnknown) { if (val == "-1" || val == "" || val == "0") { val = "?"; } } int vIdx = valsList.FindIndex(delegate(StatsItem lv) { return(lv.Caption == val); }); StatsItem lvi; if (vIdx == -1) { lvi = new StatsItem(val, sex != GDMSex.svUnknown); valsList.Add(lvi); } else { lvi = valsList[vIdx]; } switch (sex) { case GDMSex.svFemale: lvi.ValF = lvi.ValF + 1; break; case GDMSex.svMale: lvi.ValM = lvi.ValM + 1; break; case GDMSex.svUnknown: case GDMSex.svIntersex: lvi.Value = lvi.Value + 1; break; } }