SpaceAirSupplyDocUtil.cs 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /*-------------------------------------------------------------------------
  2. * 功能描述:SpaceAirSupplyDocUtil
  3. * 作者:xulisong
  4. * 创建时间: 2019/4/11 17:13:35
  5. * 版本号:v1.0
  6. * -------------------------------------------------------------------------*/
  7. using System;
  8. using System.Collections.Generic;
  9. using System.Linq;
  10. using System.Text;
  11. using System.Threading.Tasks;
  12. using NPOI.SS.UserModel;
  13. using NPOI.XSSF.UserModel;
  14. using SAGA.DotNetUtils.NPOI;
  15. namespace SAGA.GplotManage.TopologyApplication
  16. {
  17. public class SpaceAirSupplyDocUtil
  18. {
  19. /// <summary>
  20. /// 经计算结果保存到指定路径
  21. /// </summary>
  22. /// <param name="path"></param>
  23. /// <param name="results"></param>
  24. public static void Save(string path, List<SpaceAirSupplyResultItem> results)
  25. {
  26. var orderResults = results.OrderBy(s => s.Floor?.FloorSequenceID).ThenBy(s => s.AirVent?.Id).ToList();
  27. IWorkbook book = new XSSFWorkbook();
  28. ISheet sheet = book.CreateSheet("Sheet1");
  29. List<string> headNames = new List<string>() {"楼层id","楼层名称", "供风设备Id", "供风设备revitId","供风设备名称", "风口id", "风口revitId", "空间id", "空间revitId","空间名称" };
  30. for (int i = 0; i < headNames.Count; i++)
  31. {
  32. sheet.SetCellValue(0,i,headNames[i]);
  33. }
  34. int baseRowIndex = 1;
  35. int baseColumnIndex = 0;
  36. for (int i = 0; i < orderResults.Count; i++)
  37. {
  38. var useResult = orderResults[i];
  39. int useIndex = baseRowIndex + i;
  40. //使用++来替代原始的0,1,2,3的顺序
  41. int flag = 0;
  42. sheet.SetCellValue(useIndex, baseColumnIndex+ flag++, useResult.Floor?.Id);
  43. sheet.SetCellValue(useIndex, baseColumnIndex + flag++, useResult.Floor?.LocalName);
  44. sheet.SetCellValue(useIndex, baseColumnIndex + flag++, useResult.AirSupply?.Id);
  45. sheet.SetCellValue(useIndex, baseColumnIndex + flag++, useResult.AirSupply?.RevitId);
  46. sheet.SetCellValue(useIndex, baseColumnIndex + flag++, useResult.AirSupply?.GetDisplay());
  47. sheet.SetCellValue(useIndex, baseColumnIndex + flag++, useResult.AirVent?.Id);
  48. sheet.SetCellValue(useIndex, baseColumnIndex + flag++, useResult.AirVent?.RevitId);
  49. sheet.SetCellValue(useIndex, baseColumnIndex + flag++, useResult.Space?.Id);
  50. sheet.SetCellValue(useIndex, baseColumnIndex + flag++, useResult.Space?.RevitId);
  51. sheet.SetCellValue(useIndex, baseColumnIndex + flag++, useResult.Space?.GetDisplay());
  52. }
  53. book.Save(path);
  54. }
  55. }
  56. }