List<string> xbhs = listZL.Select(s => s.XBH).Distinct().ToList(); foreach (string xbh in xbhs) { List<ZL> zls = listZL.Where(s => s.XBH.Equals(xbh)).ToList(); Workbook wb = new Workbook(); Worksheet ws = wb.Worksheets[0]; #region 写入表头及字段名 ws.Cells[0, 0].Value = "注 记"; for (int i = 0; i < listCol.Count; i++) { ws.Cells[1, i].Value = listCol[i]; } #endregion #region 设置表头样式 Style style = wb.CreateStyle(); style.HorizontalAlignment = TextAlignmentType.Center; style.VerticalAlignment = TextAlignmentType.Center; style.Font.Name = "宋体"; style.Font.Size = 16; style.Font.IsBold = true; StyleFlag flag = new StyleFlag(); flag.HorizontalAlignment = true; flag.VerticalAlignment = true; flag.Font = true; Range range = ws.Cells.CreateRange("A1", "J1"); range.ApplyStyle(style, flag); #endregion #region 设置正文样式 Style style1 = wb.CreateStyle(); style1.HorizontalAlignment = TextAlignmentType.Center; style1.VerticalAlignment = TextAlignmentType.Center; style1.IsTextWrapped = true; style1.Font.Name = "宋体"; style1.Font.Size = 10; style1.Borders[BorderType.LeftBorder].LineStyle = CellBorderType.Thin; style1.Borders[BorderType.RightBorder].LineStyle = CellBorderType.Thin; style1.Borders[BorderType.TopBorder].LineStyle = CellBorderType.Thin; style1.Borders[BorderType.BottomBorder].LineStyle = CellBorderType.Thin; // 可选:设置边框颜色 style1.Borders[BorderType.LeftBorder].Color = Color.Black; style1.Borders[BorderType.RightBorder].Color = Color.Black; style1.Borders[BorderType.TopBorder].Color = Color.Black; style1.Borders[BorderType.BottomBorder].Color = Color.Black; StyleFlag flag1 = new StyleFlag(); flag1.HorizontalAlignment = true; flag1.VerticalAlignment = true; flag1.WrapText = true; flag1.Borders = true; flag1.FontBold = true; Range range1 = ws.Cells.CreateRange("A2", string.Format("J{0}", zls.Count + 3)); range1.ApplyStyle(style1, flag1); #endregion #region 设置行高 for (int i = 0; i < zls.Count+3; i++) { ws.Cells.SetRowHeight(i, 25); } #endregion #region 写入数据 for (int i = 0; i < zls.Count; i++) { ZL item = zls[i]; ws.Cells[i + 3, 3].Value = item.TGND; ws.Cells[i + 3, 4].Value = item.XBH; ws.Cells[i + 3, 5].Value = item.MJ; ws.Cells[i + 3, 6].Value = item.DL; ws.Cells[i + 3, 7].Value = item.LZ; ws.Cells[i + 3, 8].Value = item.SZ; ws.Cells[i + 3, 9].Value = item.CCXZ; } ws.Cells[2, 0].Value = "镇\r\n安\r\n县"; ws.Cells[2, 1].Value = string.Join("\r\n",zls.First().ZHEN.ToCharArray()); ws.Cells[2, 2].Value = string.Join("\r\n", zls.First().CUN.ToCharArray()); ws.Cells[2, 4].Value = "小计"; ws.Cells[2, 5].Value = listZL .Where(s=>s.XBH.Equals(xbh)) .Sum(s => s.MJ); #endregion #region 合并单元格 ws.Cells.Merge(0, 0, 1, 10); ws.Cells.Merge(2, 0, zls.Count+1, 1); ws.Cells.Merge(2, 1, zls.Count + 1, 1); ws.Cells.Merge(2, 2, zls.Count + 1, 1); #endregion ZL firstItem = zls.First(); string outFilePath = string.Format("{0}\\配置文件\\{1}{2}{3}_{4}.xls", OutPath, firstItem.ZHEN, firstItem.CUN, firstItem.XBH,zls.Count); Directory.CreateDirectory(System.IO.Path.GetDirectoryName(outFilePath)); wb.Save(outFilePath); }
浙公网安备 33010602011771号