I have been trying to use Gembox to export some information from my web application into an excel spreadsheet.
When debugging I can step through the entirety of my SaveExcelFile method but nothing seems to happen, no file is downloaded and seemingly no errors to point me in the right direction to solve the issue.
private void SaveExcelFile(ExcelDataModel excelDataModel)
{
var workbook = new ExcelFile();
ExcelWorksheet employeesWorksheet = workbook.Worksheets.Add("Employees");
ExcelWorksheet contractsWorksheet = workbook.Worksheets.Add("Contracts");
employeesWorksheet.Cells["A1"].Value = "Employees:";
employeesWorksheet.InsertDataTable(excelDataModel.EmployeeDatatable,
new InsertDataTableOptions
{
ColumnHeaders = true,
StartRow = 3
});
contractsWorksheet.Cells["A1"].Value = "Contracts:";
contractsWorksheet.InsertDataTable(excelDataModel.ContractDatatable,
new InsertDataTableOptions
{
ColumnHeaders = true,
StartRow = 3
});
workbook.Save("Employees.xls");
}
The model being passed in simply contains two DataTables:
public class ExcelDataModel
{
public DataTable EmployeeDatatable { get; set; }
public DataTable ContractDatatable { get; set; }
}
I'm calling my SaveExcelFile method from:
public async Task<ActionResult> ExportEmployees()
{
SpreadsheetInfo.SetLicense(ConfigurationManager.AppSettings["GemBoxSpreadsheetSerialKey"]);
var response = await **I have removed the call/url but this just calls a controller method on the api**;
if (response.IsSuccessStatusCode)
{
var data = response.Content.ReadAsStringAsync().Result;
var model = JsonConvert.DeserializeObject<ExcelDataModel>(data);
SaveExcelFile(model);
return Json(new { success = true, message = "Successfully exported employees" }, JsonRequestBehavior.AllowGet);
}
return Json(new { success = false, message = "Failed to export employees to excel" }, JsonRequestBehavior.AllowGet);
}
The model that is being passed in seems fine, it has the datatables populated with the correct data.