Files
Shrlalgo.RvKits/ShrlAlgoToolkit.RevitAddins/RvIndependent/NetworkCreator/ExcelData.cs

57 lines
2.6 KiB
C#
Raw Normal View History

2024-09-22 11:05:41 +08:00
using OfficeOpenXml;
2025-04-24 20:56:44 +08:00
namespace ShrlAlgoToolkit.RevitAddins.RvIndependent.NetworkCreator
2024-09-22 11:05:41 +08:00
{
public class ExcelData
{
public ExcelData(ExcelWorksheet sheet)
{
DataRows = [];
2024-09-22 11:05:41 +08:00
var lastColumn = sheet.Dimension.End.Column;
var lastRow = sheet.Dimension.End.Row;
//不计算所有末行首列为空的行
while (sheet.Cells[lastRow, 3].Value == null)
{
lastRow--;
}
System = sheet.Cells[2, 3].Value?.ToString().Split(':').Last();
for (var i = 5; i <= lastRow; i++)
{
var edr = new ExcelDataRow
{
StartId = sheet.Cells[i, 1].Value?.ToString(), //起点节点号
Number = sheet.Cells[i, 2].Value?.ToString(), //管线点号
EndId = sheet.Cells[i, 3].Value?.ToString(), //连接点号
LayingMode = sheet.Cells[i, 4].Value?.ToString(), //埋设方式
2024-09-22 11:05:41 +08:00
Material = sheet.Cells[i, 5].Value?.ToString(), //管材
Size = sheet.Cells[i, 6].Value?.ToString(), //截面尺寸
Feature = sheet.Cells[i, 7].Value?.ToString(), //特征
AccessoryType = sheet.Cells[i, 8].Value?.ToString(), //节点类型
X = Convert.ToDouble(sheet.Cells[i, 9].Value),//坐标Y
Y = Convert.ToDouble(sheet.Cells[i, 10].Value),//坐标X
2024-09-22 11:05:41 +08:00
GroundElev = Convert.ToDouble(sheet.Cells[i, 11].Value), //地面高程
Top = Convert.ToDouble(sheet.Cells[i, 12].Value), //管顶
InnerBottom = Convert.ToDouble(sheet.Cells[i, 13].Value), //管内底
Depth = Convert.ToDouble(sheet.Cells[i, 14].Value), //埋深=地面高程-管顶/管内底groundElev-top/innerBottom
NumberOfCablesOrHoles = sheet.Cells[i, 15].Value?.ToString(), //电缆根数或总孔数/已用孔数
ArrangementOfHoles = sheet.Cells[i, 16].Value?.ToString(), //管孔排列(行X列)
VoltageorPressure = sheet.Cells[i, 17].Value?.ToString(), //电力电压(KV)/压力
Remarks = sheet.Cells[i, 18].Value?.ToString() //备注
};
if (edr.StartId == null)
{
edr.StartId = DataRows.Last().StartId;
edr.HasManHole = false;
}
DataRows.Add(edr);
}
}
public List<ExcelDataRow> DataRows;
public string System { get; set; }
}
}