public static void WriteToFile <T>(string path, List <T> data) { path = path.EndsWith(".xls") ? path : path + "-" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".xls"; var props = AssembleUtil.GetPorpertyNames <T>(flags); HSSFWorkbook workbook = new HSSFWorkbook(); ISheet sheet = workbook.CreateSheet(Path.GetFileNameWithoutExtension(path)); Dictionary <int, string> valuePos = new Dictionary <int, string>(); for (int i = 0; i < props.Count; ++i) { valuePos.Add(i, props[i]); } IRow headRow = sheet.CreateRow(0); SetRowValue(headRow, valuePos); int rowPos = 1; foreach (var d in data) { var row = sheet.CreateRow(rowPos++); SetRowValue(row, valuePos, AssembleUtil.GetPropertyValues(d, flags)); } using (FileStream file = new FileStream(path, FileMode.Create)) { workbook.Write(file); } }
private static string GetHeaderString <T>() { StringBuilder header = new StringBuilder(); var props = AssembleUtil.GetPorpertyNames <T>(flags); foreach (var p in props) { header.AppendFormat("{0},", p); } return(header.ToString().TrimEnd(',')); }