1

基于这篇文章,我创建了一个 Excel TaskPane App

控制器

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

正文 home.html

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

当我运行项目时,它会在我的任务窗格中生成 id、firstname 和 lastname。伟大的!所以我的下一个问题很简单。如何在 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);
4

1 回答 1

0

您的代码可能存在一些问题。第一个是您的函数 GetEmployeeUsingAjax 永远不会返回任何内容。真正的动作是对成功函数的异步调用。因此,您必须要么在该函数中设置 excel 值,要么通过另一个函数,以便可以从成功函数内部调用它。

尝试一下,如果您仍然有问题,请更新问题。

于 2016-09-06T23:33:20.837 回答