MVC разобрать AJAX в Javascript Excel

javascript ajax asp.net-mvc exceljs

59 просмотра

1 ответ

На основе этой статьи я создал приложение Excel TaskPane

Контроллер

using DatabaseWeb.Models;
using System.Web.Mvc;

namespace DatabaseWeb.Home
{
    public class HomeController : Controller
    {
        // GET: Home
        public ActionResult GetEmployee()
        {
            Employee john = new Employee
            {
                Id = 1,
                FirstName = "John",
                LastName = "Smith"
            };

            return Json(new { employee = john }, JsonRequestBehavior.AllowGet);
        }
    }
}

Модель

namespace DatabaseWeb.Models
{
    public class Employee
    {

        public int Id { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }

    }
}

JAVASCRIPT

$(document).ready(function () {
    $('p#getEmployee').click(function () {
        GetEmployeeUsingAjax();
    });
});

function GetEmployeeUsingAjax() {
    $.ajax({
        type: 'GET',
        url: 'Home/GetEmployee',
        success: function (emp) {
            $('#id').text(emp.employee.Id);
            $('#firstName').text(emp.employee.FirstName);
            $('#lastName').text(emp.employee.LastName);
        },
        error: function (emp) {
            //alert('error');
            return "error";
        }
    });
}

body home.html

<div id="id"></div>
<div id="firstName"></div>
<div id="lastName"></div>
<p id="getEmployee">Get Employee</p>

Когда я запускаю проект, он генерирует идентификатор, имя и фамилию в моей области задач. ЗДОРОВО! Так что мой следующий вопрос очень прост. Как я могу сгенерировать фамилию в Excel (home.js)

function loadSampleData() {

var values = GetEmployeeUsingAjax(lastname);

Excel.run(function (ctx) {

        var sheet = ctx.workbook.worksheets.getActiveWorksheet();

        sheet.getRange("A1").values = values;
     return ctx.sync();
        })
        .catch(errorHandler);
}

Код выше не будет работать. 

Какой точный синтаксис? Следующий код показывает мои намерения, но не работает.

var values = GetEmployeeUsingAjax(lastname);
Автор: pacecal Источник Размещён: 08.11.2019 11:17

Ответы (1)


0 плюса

У вас может быть несколько проблем с вашим кодом. Во-первых, ваша функция GetEmployeeUsingAjax никогда ничего не возвращает. Реальное действие - это асинхронный вызов функции успеха. Таким образом, вы должны либо выполнить настройку значений Excel внутри этой функции, либо передать другую функцию, чтобы ее можно было вызывать из функции успеха.

Попробуйте, и если у вас все еще есть проблемы, обновите вопрос.

Автор: Astra Bear Размещён: 06.09.2016 11:33
Вопросы из категории :
32x32