private void printHeader()
{
//we can not have duplicate captions here.
var duplicates = _columns.GroupBy(x => x.HeaderCell.Caption).Where(g => g.Count() > 1).Select(g => g.Key).ToList();
var counterDictionary = new Dictionary<string, int>();
foreach (var item in _columns)
{
//totals don't like [ & ] !
var caption = item.HeaderCell.Caption;
caption = caption.Replace("[", "(").Replace("]", ")").Trim();
if (duplicates.Contains(caption))
{
if (counterDictionary.ContainsKey(caption))
counterDictionary[caption]++;
else
counterDictionary.Add(caption, 1);
caption = string.Format(CultureInfo.InvariantCulture, "{0} ({1})", caption, counterDictionary[caption]);
}
_worksheet.Cells[_row, _col].Value = caption;
_uniqueHeaders.Add(_col, caption);
setHorizontalAlignment(item);
_col++;
}
_row++;
}