private ActionResult LogSpreadsheet(List<usp_LogResult> list, object[] filterStrs)
{
const int colPickupPerson = 1;
const int colPickupAddress = 3;
const int colPickupTime = 7;
const int colMileage = 9;
const int rowType = 0;
const int rowTenant = 4;
const int rowDriver = rowTenant + 3;
const int rowVIN = rowTenant + 6;
const int start_row = rowTenant + 10;
const int tableRowThree = start_row + 3;//2
int last_row = start_row + 7;
string file_path = Server.MapPath(@"\Content\ Log-Template.xls");
HSSFWorkbook wk;
using (FileStream fs_in = new FileStream(file_path, FileMode.Open, FileAccess.Read))
{
wk = new HSSFWorkbook(fs_in, true);
}
DocumentSummaryInformation dsi = PropertySetFactory.CreateDocumentSummaryInformation();
dsi.Company = filterStrs[0].ToString();
wk.DocumentSummaryInformation = dsi;
SummaryInformation si = PropertySetFactory.CreateSummaryInformation();
si.Subject = " Log Report";
wk.SummaryInformation = si;
ISheet sheet = wk.GetSheetAt(0);
var patriarch = sheet.CreateDrawingPatriarch();
//Populating header works fine
sheet.GetRow(rowType).GetCell(0).SetCellValue(filterStrs[3].ToString()); // Insurance Type
sheet.GetRow(rowTenant).GetCell(0).SetCellValue(filterStrs[0].ToString()); // Provider Name
sheet.GetRow(rowDriver).GetCell(3).SetCellValue(filterStrs[2].ToString()); // Driver Name
sheet.GetRow(rowTenant).GetCell(3).SetCellValue(filterStrs[1].ToString()); // Ride Dates
IRow template_row = sheet.GetRow(start_row);
var row_index = start_row;
foreach(var record in list)
{
sheet.ShiftRows(row_index + 1, last_row, 1);
IRow hrow = sheet.GetRow(row_index);
hrow.Height = template_row.Height;
IRow thirdDataRow = sheet.GetRow(row_index + 1);
{
////ICell hCell = hrow.CreateCell(colPickupPerson, CellType.STRING);
////hCell.CellStyle = secondDataRow.GetCell(colPickupPerson).CellStyle; //template_row
////hCell.SetCellValue(!String.IsNullOrEmpty(record.CustomerName) ? record.CustomerName : "Customer name");//(!String.IsNullOrEmpty( //hCell.RichStringCellValue.ToString ));//(record.CustomerName) ? record.CustomerName : "Test Name");
ICell hcell = hrow.GetCell(colPickupPerson);
hcell.CellStyle = template_row.GetCell(colPickupPerson).CellStyle;
hcell.SetCellValue(!String.IsNullOrEmpty(record.CustomerName) ? record.CustomerName + "1" : "Customer test");
}
{
ICell hCell = hrow.GetCell(colPickupAddress);
hCell.CellStyle = template_row.GetCell(colPickupAddress).CellStyle;
hCell.CellStyle = cellRowStyle;
hCell.SetCellValue(!String.IsNullOrEmpty(record.FromAddress1) ? strBuildFullFromAddress : String.Empty);
}
{ //This row works fine without any problems
ICell hCell = hrow.GetCell(colPickupTime);
hCell.CellStyle = template_row.GetCell(colPickupTime).CellStyle;
hCell.SetCellValue(!String.IsNullOrEmpty(record.PickupTime) ? record.PickupTime : String.Empty);
}
{
ICell hCell = thirdDataRow.GetCell(colPickupPerson);
hCell.CellStyle = thirdDataRow.GetCell(colPickupPerson).CellStyle;
hCell.SetCellValue(!String.IsNullOrEmpty(record.DropOffLocation) ? record.DropOffLocation : "DropOff");
}
{//strBuildFullToAddress
ICell hCell = hrow.CreateCell(colPickupAddress, CellType.STRING);
hCell.CellStyle = template_row.GetCell(colPickupAddress).CellStyle;
hCell.SetCellValue(!String.IsNullOrEmpty(record.ToAddress1) ? strBuildFullToAddress : String.Empty);
}
sheet.ShiftRows(tableRowThree+1, last_row, 0);
{
ICell hCell = hrow.CreateCell(colPickupTime, CellType.STRING);
hCell.CellStyle = template_row.GetCell(colPickupTime).CellStyle;
hCell.SetCellValue(!String.IsNullOrEmpty(record.DropoffTime) ? record.DropoffTime : String.Empty);
}
{
ICell hCell = hrow.CreateCell(colPickupPerson, CellType.STRING);
hCell.CellStyle = template_row.GetCell(colPickupPerson).CellStyle;
hCell.SetCellValue(!String.IsNullOrEmpty(record.InsuranceAuthNumber) ? record.InsuranceAuthNumber : String.Empty);
}
{
ICell hCell = hrow.CreateCell(colPickupPerson, CellType.STRING);
hCell.CellStyle = template_row.GetCell(colPickupPerson).CellStyle;
hCell.SetCellValue(!String.IsNullOrEmpty(record.AWS) ? record.AWS : String.Empty);
}
{
ICell hCell = hrow.CreateCell(colPickupAddress, CellType.STRING);
hCell.CellStyle = template_row.GetCell(colPickupAddress).CellStyle;
string birth = Convert.ToString(record.DateOfBirth);
hCell.SetCellValue(!String.IsNullOrEmpty(birth) ? birth : "");
}
{
ICell hCell = hrow.CreateCell(colMileage, CellType.STRING);
hCell.CellStyle = fourthDataRow.GetCell(colMileage).CellStyle;
hCell.CellStyle = cellRowStyle;
hCell.SetCellValue(record.TotalTripMileage != null ? record.TotalTripMileage.ToString() : String.Empty);
}
{
ICell hCell = hrow.CreateCell(colPickupPerson, CellType.STRING);
hCell.CellStyle = template_row.GetCell(colPickupPerson).CellStyle;
hCell.SetCellValue(!String.IsNullOrEmpty(record.Notes) ? record.Notes : "");
}
sheet.ForceFormulaRecalculation = true;
var memoryStream = new MemoryStream();
wk.Write(memoryStream);
return File(memoryStream.ToArray(), "application/vnd.ms-excel", " Trip-Log.xls");
}