Initial commit: JDE Scoping Tool migration project
Set up repository with legacy .NET Framework 4.8 source (OLD/), new .NET 10 Blazor solution (NEW/), OpenSpec specifications, documentation, and project configuration.
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
using ClosedXML.Excel;
|
||||
using JdeScoping.ExcelIO.Attributes;
|
||||
|
||||
namespace JdeScoping.ExcelIO.Formatting;
|
||||
|
||||
/// <summary>
|
||||
/// Column width and number format utilities.
|
||||
/// </summary>
|
||||
public static class ColumnFormatter
|
||||
{
|
||||
/// <summary>
|
||||
/// Applies column formatting based on attribute settings.
|
||||
/// </summary>
|
||||
/// <param name="column">The column to format.</param>
|
||||
/// <param name="attr">The output column attribute with settings.</param>
|
||||
public static void ApplyColumnFormat(IXLColumn column, OutputColumnAttribute attr)
|
||||
{
|
||||
// Set number format
|
||||
column.Style.NumberFormat.Format = attr.Format;
|
||||
|
||||
// Handle wrap text
|
||||
if (attr.WrapText)
|
||||
{
|
||||
column.Style.Alignment.WrapText = true;
|
||||
}
|
||||
|
||||
// Handle width
|
||||
if (attr.WrapText && !attr.AutoWidth)
|
||||
{
|
||||
// Wrapped columns with fixed width skip auto-fit
|
||||
column.Width = attr.Width;
|
||||
}
|
||||
else if (attr.AutoWidth)
|
||||
{
|
||||
column.AdjustToContents();
|
||||
column.Width *= ExcelFormats.DataPaddingFactor;
|
||||
}
|
||||
else
|
||||
{
|
||||
column.Width = attr.Width;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Auto-fits a column with the specified padding factor.
|
||||
/// </summary>
|
||||
/// <param name="column">The column to auto-fit.</param>
|
||||
/// <param name="paddingFactor">The padding factor to apply (e.g., 1.15 for 15% padding).</param>
|
||||
public static void AutoFitWithPadding(IXLColumn column, double paddingFactor)
|
||||
{
|
||||
column.AdjustToContents();
|
||||
column.Width *= paddingFactor;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user