0

Gembox を使用して、Web アプリケーションから一部の情報を Excel スプレッドシートにエクスポートしようとしています。

デバッグ時に SaveExcelFile メソッド全体をステップ実行できますが、何も起こらないようで、ファイルがダウンロードされず、問題を解決するための正しい方向に私を向けるエラーはないようです。

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");
    }

渡されるモデルには、次の 2 つの DataTable が含まれているだけです。

    public class ExcelDataModel
{
    public DataTable EmployeeDatatable { get; set; }
    public DataTable ContractDatatable { get; set; }

}

SaveExcelFile メソッドを次から呼び出しています。

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);
    }

渡されたモデルは問題ないようです。データテーブルには正しいデータが入力されています。

4

1 に答える 1