feat: add ColumnAttribute and CellExtensions for BOM parsing
This commit is contained in:
23
OpenNest.IO/Bom/CellExtensions.cs
Normal file
23
OpenNest.IO/Bom/CellExtensions.cs
Normal file
@@ -0,0 +1,23 @@
|
||||
using ClosedXML.Excel;
|
||||
|
||||
namespace OpenNest.IO.Bom
|
||||
{
|
||||
public static class CellExtensions
|
||||
{
|
||||
public static int? ToIntOrNull(this IXLCell cell)
|
||||
{
|
||||
if (cell.IsEmpty()) return null;
|
||||
if (cell.DataType == XLDataType.Number) return (int)cell.GetDouble();
|
||||
if (int.TryParse(cell.GetString(), out var i)) return i;
|
||||
return null;
|
||||
}
|
||||
|
||||
public static double? ToDoubleOrNull(this IXLCell cell)
|
||||
{
|
||||
if (cell.IsEmpty()) return null;
|
||||
if (cell.DataType == XLDataType.Number) return cell.GetDouble();
|
||||
if (double.TryParse(cell.GetString(), out var result)) return result;
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
15
OpenNest.IO/Bom/ColumnAttribute.cs
Normal file
15
OpenNest.IO/Bom/ColumnAttribute.cs
Normal file
@@ -0,0 +1,15 @@
|
||||
using System;
|
||||
|
||||
namespace OpenNest.IO.Bom
|
||||
{
|
||||
[AttributeUsage(AttributeTargets.Property)]
|
||||
public class ColumnAttribute : Attribute
|
||||
{
|
||||
public ColumnAttribute(params string[] names)
|
||||
{
|
||||
Names = names;
|
||||
}
|
||||
|
||||
public string[] Names { get; }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user