Я новичок в ПРИЛОЖЕНИЯХ для ОФИСА
Я пробую простой код, в котором я проверяю данные Excel. Поэтому вместо того, чтобы снова и снова вкладывать вещи в ctx.sync (), я пишу такой код: -
// **json** object used beneath is somewhat like:
{"Field":[
{"FieldName":"Field1", "FieldDesc":"Field 1 desc", "MappedTo":"B2", "IsMandatory":"true", "LOV":"1,2,3"}]}
// **LOV** in above json data means:- the field data can only be among the values given.
//********** MY PIECE OF CODE**************
var fieldData = "";
$.each(json, function (index, field) {
range = ctx.workbook.worksheets.getActiveWorksheet().getRange(field.MappedTo + ":" + field.MappedTo);
range.load('text');
ctx.sync();
fieldData = range.text;
if(field.IsMandatory == true && (fieldData == "" || fieldData == null))
{
headerValidation = headerValidation + "Data is required for Field : " + field.FieldDesc + "\n";
}
else if(field.LOV != "" )
{
if($.inArray(fieldData, field.LOV.split(',')) == -1)
{
headerValidation = headerValidation + "Data not among LOV for Field : " + field.FieldDesc + "\n";
}
}
range = null;
});
Как видно, мне нужно снова и снова читать объект диапазона. Поэтому я использую объект диапазона каждый раз с другим адресом и вызываю сначала load (), а затем ctx.sync ().
Если я отлаживаю медленно, все работает нормально, но при запуске приложения я иногда получаю частую ошибку: -
Свойство "текст" недоступно. Перед чтением значения свойства вызовите метод загрузки для содержащего объекта и вызовите context.sync () для связанного контекста запроса.
Пожалуйста, посоветуй мне, как я могу с этим справиться? Кроме того, мой подход правильный?