Files
CDMUtility/CDMUtil/Common/CDMComponent2Excel.cs
2026-02-23 14:35:54 +08:00

206 lines
9.3 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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<CDMFloor> 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<CDMColumn> 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<CDMBeam> 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<CDMWall> 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<CDMStairs> 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();
};
}
}
}
}