using System;
using System.Collections.Generic;
using System.Linq;
namespace Masuit.Tools.Excel
{
///
/// 表格列设置项
///
public class ColumnSettings
{
internal readonly Dictionary ColumnTypes = new();
private readonly NumberFormater _numberFormater = new("ABCDEFGHIJKLMNOPQRSTUVWXYZ", 1);
///
/// 设置列格式
///
/// 列索引,从1开始
/// 格式字符串,例如:"¥"#,##0.00;"¥"\-#,##0.00
///
public ColumnSettings SetColumnFormat(int index, string format)
{
ColumnTypes.Add(index, format);
return this;
}
///
/// 设置列格式
///
/// 列索引,从A开始
/// 格式字符串,例如:"¥"#,##0.00;"¥"\-#,##0.00
///
public ColumnSettings SetColumnFormat(string column, string format)
{
if (string.IsNullOrEmpty(column))
{
throw new ArgumentException("列索引不能为空");
}
column = string.Intern(column.ToUpper());
if (column.Except(_numberFormater.Characters).Any())
{
throw new ArgumentException("列索引非法:" + column);
}
ColumnTypes.Add((int)_numberFormater.FromString(column), format);
return this;
}
///
/// 设置列格式
///
/// 列索引,从1开始
/// 格式字符串,例如:"¥"#,##0.00;"¥"\-#,##0.00
///
public ColumnSettings SetColumnFormat(int[] index, string format)
{
foreach (var i in index)
{
SetColumnFormat(i, format);
}
return this;
}
///
/// 设置列格式
///
/// 列索引,从A开始
/// 格式字符串,例如:"¥"#,##0.00;"¥"\-#,##0.00
///
public ColumnSettings SetColumnFormat(string[] columns, string format)
{
foreach (var i in columns)
{
SetColumnFormat(i, format);
}
return this;
}
}
}