using CDM.Interop.Revit.CDMComponent; using OfficeOpenXml; using System; using System.Collections.Generic; using System.Data; using System.IO; namespace CDM.Interop.Revit { class CDMComponent2Excel { //Math.Round(number, 2, MidpointRounding.AwayFromZero)四舍五入 public static void CDMFloorsToExcel(List floors, string sourceFileName, string destFolder) { foreach (var floor in floors) { string destFileName = destFolder + "\\" + floor.HcdmClass + "-" + floor.HcdmNumber + ".xlsx"; File.Copy(sourceFileName, destFileName, true); FileInfo fi = new FileInfo(destFileName); using (ExcelPackage package = new ExcelPackage(fi)) { //var worksheet = package.Workbook.Worksheets["基本构件"]; var worksheet = package.Workbook.Worksheets[1]; //构件标准名称 worksheet.Cells["G2"].Value = floor.Name; worksheet.Cells["G3"].Value = floor.HcdmClass; worksheet.Cells["G4"].Value = floor.HcdmClass + "-" + floor.HcdmNumber; worksheet.Cells["H14"].Value = floor.Xl; worksheet.Cells["H15"].Value = floor.Yw; worksheet.Cells["H16"].Value = floor.Zh; worksheet.Cells["H17"].Value = 0; worksheet.Cells["H18"].Value = floor.L; worksheet.Cells["H19"].Value = floor.W; worksheet.Cells["H20"].Value = floor.T; var worksheet1 = package.Workbook.Worksheets["方形洞口"]; try { worksheet1.Cells["H7"].Value = floor.CDMopenings[0].Xl; worksheet1.Cells["H8"].Value = floor.CDMopenings[0].Yw; worksheet1.Cells["H9"].Value = floor.CDMopenings[0].Length; worksheet1.Cells["H10"].Value = floor.CDMopenings[0].Width; worksheet1.Cells["H11"].Value = floor.CDMopenings[1].Xl; worksheet1.Cells["H12"].Value = floor.CDMopenings[1].Yw; worksheet1.Cells["H13"].Value = floor.CDMopenings[1].Length; worksheet1.Cells["H14"].Value = floor.CDMopenings[1].Width; } catch (Exception) { continue; } finally { package.Save(); } }; } } public static void CDMColumnsToExcel(List columns, string sourceFileName, string destFolder) { foreach (var column in columns) { string destFileName = destFolder + "\\" + column.HcdmClass + "-" + column.HcdmNumber + ".xlsx"; File.Copy(sourceFileName, destFileName, true); FileInfo fi = new FileInfo(destFileName); using (ExcelPackage package = new ExcelPackage(fi)) { var worksheet = package.Workbook.Worksheets[1]; //var worksheet = package.Workbook.Worksheets["基本构件"]; //构件标准名称 worksheet.Cells["G2"].Value = column.Name; worksheet.Cells["G3"].Value = column.HcdmClass; worksheet.Cells["G4"].Value = column.HcdmClass + "-" + column.HcdmNumber; worksheet.Cells["H14"].Value = column.Xl; worksheet.Cells["H15"].Value = column.Yw; worksheet.Cells["H16"].Value = column.Zh; worksheet.Cells["H17"].Value = 0;//均不旋转,方向角为0 worksheet.Cells["H18"].Value = column.SectionB; worksheet.Cells["H19"].Value = column.SectionH; worksheet.Cells["H20"].Value = column.L; package.Save(); }; } } public static void CDMBeamsToExcel(List beams, string sourceFileName, string destFolder) { foreach (var beam in beams) { string destFileName = destFolder + "\\" + beam.HcdmClass + "-" + beam.HcdmNumber + ".xlsx"; File.Copy(sourceFileName, destFileName, true); FileInfo fi = new FileInfo(destFileName); using (ExcelPackage package = new ExcelPackage(fi)) { var worksheet = package.Workbook.Worksheets[1]; //var worksheet = package.Workbook.Worksheets["基本构件"]; //构件标准名称 worksheet.Cells["G2"].Value = beam.Name; worksheet.Cells["G3"].Value = beam.HcdmClass; worksheet.Cells["G4"].Value = beam.HcdmClass + "-" + beam.HcdmNumber; worksheet.Cells["H14"].Value = beam.Xl; worksheet.Cells["H15"].Value = beam.Yw; worksheet.Cells["H16"].Value = beam.Zh; worksheet.Cells["H17"].Value = beam.DegreesWithXAxis; worksheet.Cells["H18"].Value = beam.L; worksheet.Cells["H19"].Value = beam.SectionB; worksheet.Cells["H20"].Value = beam.SectionH; package.Save(); }; } } public static void CDMWallsToExcel(List walls, string sourceFileName, string destFolder) { foreach (var wall in walls) { string destFileName = destFolder + "\\" + wall.HcdmClass + "-" + wall.HcdmNumber + ".xlsx"; File.Copy(sourceFileName, destFileName, true); FileInfo fi = new FileInfo(destFileName); using (ExcelPackage package = new ExcelPackage(fi)) { var worksheet = package.Workbook.Worksheets[1]; //var worksheet = package.Workbook.Worksheets["基本构件"]; //构件标准名称 worksheet.Cells["G2"].Value = wall.Name; worksheet.Cells["G3"].Value = wall.HcdmClass; worksheet.Cells["G4"].Value = wall.HcdmClass + "-" + wall.HcdmNumber; worksheet.Cells["H14"].Value = wall.Xl; worksheet.Cells["H15"].Value = wall.Yw; worksheet.Cells["H16"].Value = wall.Zh; package.Save(); }; } } public static void CDMStairsToExcel(List stairs, string sourceFileName, string destFolder) { foreach (var stair in stairs) { string destFileName = destFolder + "\\" + stair.HcdmClass + "-" + stair.HcdmNumber + ".xlsx"; File.Copy(sourceFileName, destFileName, true); FileInfo fi = new FileInfo(destFileName); using (ExcelPackage package = new ExcelPackage(fi)) { var worksheet = package.Workbook.Worksheets[1]; //var worksheet = package.Workbook.Worksheets["基本构件"]; //构件标准名称 worksheet.Cells["G2"].Value = stair.Name; worksheet.Cells["G3"].Value = stair.HcdmClass; worksheet.Cells["G4"].Value = stair.HcdmClass + "-" + stair.HcdmNumber; worksheet.Cells["H14"].Value = stair.Runs[0].Xl; worksheet.Cells["H15"].Value = stair.Runs[0].Yw; worksheet.Cells["H16"].Value = stair.Runs[0].Zh; worksheet.Cells["H17"].Value = stair.Runs[0].DegreesWithXAxis; worksheet.Cells["H18"].Value = stair.Runs[0].Length; worksheet.Cells["H19"].Value = stair.Runs[0].Width; worksheet.Cells["H20"].Value = stair.Runs[0].Height; worksheet.Cells["H21"].Value = stair.Runs[0].Thickness; worksheet.Cells["H22"].Value = stair.Runs[0].NumberOfRisers; worksheet.Cells["H23"].Value = stair.Landing.Xl; worksheet.Cells["H24"].Value = stair.Landing.Yw; worksheet.Cells["H25"].Value = stair.Landing.Zh; worksheet.Cells["H26"].Value = stair.Landing.Length; worksheet.Cells["H27"].Value = stair.Landing.Width; worksheet.Cells["H28"].Value = stair.Landing.Thickness; worksheet.Cells["H29"].Value = stair.Runs[1].Xl; worksheet.Cells["H30"].Value = stair.Runs[1].Yw; worksheet.Cells["H31"].Value = stair.Runs[1].Zh; worksheet.Cells["H32"].Value = stair.Runs[1].DegreesWithXAxis; worksheet.Cells["H33"].Value = stair.Runs[1].Length; worksheet.Cells["H34"].Value = stair.Runs[1].Width; worksheet.Cells["H35"].Value = stair.Runs[1].Height; worksheet.Cells["H36"].Value = stair.Runs[1].Thickness; worksheet.Cells["H37"].Value = stair.Runs[1].NumberOfRisers; package.Save(); }; } } } }