Hi all
I am struggling to get some cell validation working. I have been passed over code which needs some improvements. Currently I need cells to only accept a int value, but users currently can enter apostrophes into the cell which then later causes problems.
The Excel sheets are all generated programmatically and comments are sparse. I believe the leafcells are where the user will enter the data, sorry can't provide an example
what I have is
public void WriteRowsBody(xl::Worksheet sheet, IEnumerable<ServiceAgreement> agreements, ref int lastRow)
{
xl::Range range = null;
Cell[] leafcells = Cells.SelectMany(c => c.Leaves).ToArray();
int col = 1;
int row = lastRow + 1;
foreach (ServiceAgreement sa in agreements)
{
string[] values = new string[] { sa.Id, (sa.DateWeekStart.HasValue ? sa.DateWeekStart.Value.ToString("yyyy-MM-dd") : ""), sa.ClientName, sa.ClientAddress, sa.ServiceElement };
for (int i = 0; i < values.Length; i++, col++)
{
sheet.Cells[row, col].Value2 = values[i];
sheet.Range[sheet.Cells[row, col], sheet.Cells[row + 1, col]].Merge();
}
sheet.Cells[row, col].Value2 = "Planned";
sheet.Cells[row + 1, col].Value2 = "Actual";
WriteDataCells(sheet, sa, row);
range = sheet.Range[sheet.Cells[row, 1], sheet.Cells[row + 1, leafcells.Length]];
XlPaintBackground(range, TitleColour);
XlSetAlignment(range, xl::XlHAlign.xlHAlignCenter, xl::XlVAlign.xlVAlignCenter);
for (int i = 0; i < leafcells.Length; i++)
{
XlDrawBorder(sheet.Cells[row, i + 1], Color.Black);
xl::Range rb = sheet.Cells[row + 1, i + 1];
XlDrawBorder(rb, Color.Black);
if (leafcells[i].IsEditable)
{
XlPaintBackground(rb, alternate);
XlProtect(rb, false);
}
}
col = 1;
row += 2;
}
lastRow = row;
}
How do I go about validating the cells?
Any help please
:)
Thanks