I am using Aspose.Cells Version 3.7.0.0.
I am pasting my code below: (Please note that I am using my own class which calls the Aspose methods)
public void CreateTimeTypeTab(int clientID,int timeTypeID,string timeTypeName)
{
excelObj.ExcelAddRenameSheet("CSR-" + timeTypeName);
DataSet dsFeedData = feedFileBC.GetAllMetrics(clientID, timeTypeID);
excelObj.ExcelWorkSheet.Cells.ImportDataTable(dsFeedData.Tables[0], true, "A1");
if (ClientName == "Vie")
{
excelObj.ExcelProtectWorkSheet(CSRSheetPassword);
}
else
{
excelObj.ExcelProtectWorkSheetCompletely(CSRSheetPassword);
}
/* Update the index variables*/
CSREndColumnNo = dsFeedData.Tables[0].Columns.Count - 1;
CSREndRowNo = dsFeedData.Tables[0].Rows.Count+1;
//Call the Format sheet method to add formatting
FormatSheet();
}
public void FormatSheet()
{
//Change header for Root Client
excelObj.Excel_Add_Header(CSRHeaderRow, 0, "Client ID");
excelObj.Excel_Add_Header(CSRHeaderRow, 1, "Client");
DateColumnCnt = FindColumnByHeader("Date");
excelObj.ExcelAutoFitColumn(DateColumnCnt);
MetricNameColumnNo = FindColumnByHeader("Metric Name");
LevelCnt = FindColumnByHeader("ElementRefID") / 2;
MetricTypeCnt = (FindColumnByHeader("Feed Version") - MetricNameColumnNo) / 2;
DateColumnCnt = FindColumnByHeader("Date");
for (int j = 0; j < LevelCnt; j++)
{
if (j > 0)
{
excelObj.Excel_Add_Header(CSRHeaderRow, j * 2 + 1, "ReportingLevel" + (j));
excelObj.ExcelAutoFitColumn(j * 2 + 1);
excelObj.Excel_Add_Header(CSRHeaderRow, j * 2 , "ClientID");
excelObj.ExcelColoumnHide(0);
excelObj.ExcelColoumnHide(j * 2);
}
}
//Format and hide the Client ID columns
for (int i = 0; i < LevelCnt; i++)
{
excelObj.CreateNewStyle();
for (int k = CSRStartRowNo; k <= CSREndRowNo; k++)
{
excelObj.ExcelChangeBackColor(k-1, (i * 2), "Red");
excelObj.ExcelChangeBorderColor(k-1, (i * 2), "Black");
}
excelObj.CreateNewStyle();
for (int k = CSRStartRowNo; k <= CSREndRowNo; k++)
{
excelObj.ExcelChangeBackColor(k-1, (i * 2) + 1, "Yellow");
excelObj.ExcelChangeBorderColor(k-1, (i * 2) + 1, "Black");
}
excelObj.ExcelAutoFitColumn(i * 2 + 1);
}
//Formatting the ElementReferenceID column
excelObj.CreateNewStyle();
for (int k = CSRStartRowNo; k <= CSREndRowNo; k++)
{
excelObj.ExcelChangeBackColor(k-1, MetricNameColumnNo - 1, "Yellow");
excelObj.ExcelChangeBorderColor(k-1, MetricNameColumnNo - 1, "Black");
}
//Format the Metric Name column
excelObj.CreateNewStyle();
for (int i = CSRStartRowNo; i <= CSREndRowNo; i++)
{
excelObj.ExcelChangeBackColor(i-1, MetricNameColumnNo, "Aqua");
excelObj.ExcelChangeBorderColor(i-1, MetricNameColumnNo, "Black");
}
excelObj.ExcelAutoFitColumn(MetricNameColumnNo);
excelObj.ExcelDateValidation(CSRStartRowNo, CSREndRowNo, DateColumnCnt, DateColumnCnt);
// increase the width of date column
excelObj.ExcelColumnWidth(Convert.ToByte(DateColumnCnt), 10);
//Unlock the Date field
for (int i = CSRStartRowNo; i <= CSREndRowNo; i++)
{
excelObj.ExcelChangeBackColor(i - 1, DateColumnCnt, "Yellow");
excelObj.ExcelChangeBorderColor(i - 1, DateColumnCnt, "Black");
excelObj.ExcelLockCell(i - 1, DateColumnCnt, false);
}
//Hide and format ElementTypeID columns
for (int i = 0; i < MetricTypeCnt-1; i++)
{
for (int k = CSRStartRowNo; k <= CSREndRowNo; k++)
{
excelObj.ExcelChangeBackColor(k-1, DateColumnCnt + (i * 2 + 1), "Red");
excelObj.ExcelChangeBorderColor(k-1, DateColumnCnt + (i * 2 + 1), "Black");
}
//Format the ElementType Column
for (int k = CSRStartRowNo; k <= CSREndRowNo; k++)
{
excelObj.ExcelValidationForDecimal(0, CSREndRowNo, DateColumnCnt + (i * 2 + 2), DateColumnCnt + (i * 2 + 2));
if (excelObj.ExcelWorkSheet.Cells[k - 1, DateColumnCnt + (i * 2 + 2)].StringValue == "X")
{
excelObj.ExcelWorkSheet.Cells[k - 1, DateColumnCnt + (i * 2 + 2)].PutValue(string.Empty);
excelObj.ExcelLockCell(k - 1, DateColumnCnt + (i * 2 + 2), false);
excelObj.ExcelChangeBackColor(k - 1, DateColumnCnt + (i * 2 + 2), "Yellow");
}
else if (excelObj.ExcelWorkSheet.Cells[k - 1, DateColumnCnt + (i * 2 + 2)].StringValue == "")
{
// Lock
excelObj.ExcelChangeBackColor(k - 1, DateColumnCnt + (i * 2 + 2), "Yellow");
}
else if (excelObj.ExcelWorkSheet.Cells[k - 1, DateColumnCnt + (i * 2 + 2)].StringValue == "P")
{
// Lock and grey
excelObj.ExcelWorkSheet.Cells[k - 1, DateColumnCnt + (i * 2 + 2)].PutValue(string.Empty);
excelObj.ExcelChangeBackColor(k - 1, DateColumnCnt + (i * 2 + 2), "Grey");
}
excelObj.ExcelChangeBorderColor(k-1, DateColumnCnt + (i * 2 + 2), "Black");
}
excelObj.ExcelAutoFitColumn(DateColumnCnt + (i * 2 + 2));
}
// Hiding ElementRefID
excelObj.ExcelColoumnHide(LevelCnt*2);
//Colour the ElementType columns
for (int k = 0; k < MetricTypeCnt-1; k++)
{
excelObj.Excel_Add_Header(CSRHeaderRow, DateColumnCnt + k * 2 + 1, "ElementTypeID");
excelObj.ExcelColoumnHide(DateColumnCnt + k * 2 + 1);
}
//Hiding the feed version column
excelObj.ExcelColoumnHide(FindColumnByHeader("Feed Version"));
excelObj.CreateNewStyle();
//Change Header font to bold
excelObj.ExcelChangeBoldRangeCol("A1", excelArray[CSREndColumnNo] + "1", true);
}