office web api создать большой двоичный объект из octetstream и создать из него новую книгу (javascript) (ms Excel)

#excel #office-js #office-addins #excel-addins

#excel #office-js #office-дополнения #excel-дополнения

Вопрос:

Я пытаюсь создать книгу на основе ответа API REST сервера (octet-stream), но мне не удается ее создать.

Вот фрагмент для моей функции создания рабочей книги:

 async function createWorkbookFromExisting(myBlob) {

  OfficeExtension.config.extendedErrorLogging = true;
  const reader = new FileReader();
  reader.onload = (event) => {
    Excel.run((context) => {
    // strip off the metadata before the base64-encoded string
    const startIndex = reader.result.toString().indexOf("base64,");
    console.log(startIndex);
    const mybase64 = reader.result.toString().substr(startIndex   7);
    //console.log(mybase64);
  Excel.createWorkbook(mybase64);
  return context.sync();
});
};
  

и вот мой фрагмент создания большого двоичного объекта:

 xmlHttpRequest.onreadystatechange = function() {
  //var a;
  if (xmlHttpRequest.readyState === 4 amp;amp; xmlHttpRequest.status === 200) {
    console.log(xmlHttpRequest.response);
    var respObj = new Object(xmlHttpRequest.response);
    //xmlHttpRequest.re
    console.log(respObj);
    var resp = new Blob([xmlHttpRequest.response], { type: 'application/ vnd.openxmlformats - officedocument.spreadsheetml.sheet;'});
    
    createWorkbookFromExisting(resp);
    
    
  }
};
xmlHttpRequest.open("GET", _url);
//xmlHttpRequest.setRequestHeader("Content-Type","application/octet-stream");
xmlHttpRequest.responseType = 'blob';
xmlHttpRequest.send();
  

У меня эта ошибка:

{ «description»: «Аргумент недействителен, отсутствует или имеет неправильный формат»., «message»: «Аргумент недействителен, отсутствует или имеет неправильный формат»., «stack»: «InvalidArgument: Аргумент недопустим, отсутствует или имеет неправильный формат.n в анонимной функции (https://appsforoffice.microsoft.com/lib/1/hosted/excel-win32-16.01.js:26:287669 ) n в o (https://script-lab-runner.azureedge.net/static/js/1.0f9cfae3.chunk.js:1:2779072 )n при анонимной функции (https://script-lab-runner.azureedge.net/static/js/1.0f9cfae3.chunk.js:1:2779219 )n в u (https://script-lab-runner.azureedge.net/static/js/1.0f9cfae3.chunk.js:1:314565 )», «имя»: «RichApi.Ошибка», «code»: «InvalidArgument», «traceMessages»: [], «innerError»: null, «debugInfo»: { «code»: «InvalidArgument», «message»: «Аргумент недействителен, отсутствует или имеет неправильный формат»., «errorLocation»:»Application.createWorkbook», «statement»: «var createWorkbook = application.createWorkbook(…);», «Окружающие состояния»: [ «var workbook = context.workbook;», «var application = workbook.application;», «// >>>>>», » варcreateWorkbook = application.createWorkbook(…);», «// <<<<<«, » createWorkbook.open();» ], «fullStatements»: [ «var workbook = context.workbook;», «var application = workbook.application;», «var createWorkbook =application.createWorkbook(«dW5kZWZpbmVkPSZ1bmRlZmluZWQ9JnVuZGVmaW5lZD0mdW5kZWZpbmVkPSZ1bmRlZmluZWQ9JnVuZGVmaW5lZD0mdW5kZWZpbmVkPSZ1bmRlZmluZWQ9JnVuZGVmaW5lZD0mdW5kZWZpbmVkPSZ1bmRlZmluZWQ9JnVuZGVmaW5lZD0mdW5kZWZpbmVkPSZ1bmRlZmluZWQ9JnVuZGVmaW5lZD0mdW5kZWZpbmVkPSZ1bmRlZmluZWQ9JnVuZGVmaW5lZD0mdW5kZWZpbmVkPSZ1bmRlZm

Комментарии:

1. Могу ли я узнать, как вы запускали этот код? Можете ли вы поделиться примером resp, упомянутым в вашем коде, чтобы помочь repro?

2. Привет @MandytMSFT, я запустил его с помощью scriptlab

3. Возможно ли поделиться своим образцом resp, чтобы сосредоточиться на выявлении причины ошибки API?