0

以下のコードを何時間も見つめていましたが、問題を解決する方法をどこから始めればよいかわかりません。事前に、私は文字通りコードをコピーして貼り付けているので、これは Microsoft Web API の問題よりも JavaScript の問題であると考えています。

Microsoft Excel の Web API を使用して、Web ページに Excel シートを埋め込もうとしています (問題なく動作します)。より具体的には、セルを強調表示すると、選択したセルの値が警告JavaScriptボックスに表示されるようにしようとしています。

これは、私がやろうとしていることを正確にコードで示した実際の例です http://www.excelmashup.com/APIBrowser#example105

右下のタブを「出力」から「HTML」に変更するだけで、以下と同じコードが表示されます。

<html>
<head>
  <script type="text/javascript" src="http://r.office.microsoft.com/r/rlidExcelWLJS?v=1&kip=1"></script>
  <script type="text/javascript">
    // run the Excel load handler on page load
    if (window.attachEvent) {
      window.attachEvent("onload", loadEwaOnPageLoad);
    } else {
      window.addEventListener("DOMContentLoaded", loadEwaOnPageLoad, false);
    }

    function loadEwaOnPageLoad() {
      var fileToken = "SDBBABB911BCD68292!110/-4923638281765748078/t=0&s=0&v=!ALTlXd5D3qSGJKU";
      var props = {
              uiOptions: {
                    showGridlines: false,
          selectedCell: "'Sheet1'!C9",
                    showRowColumnHeaders: false,
                    showParametersTaskPane: false
              },
              interactivityOptions: {
                    allowTypingAndFormulaEntry: false,
                    allowParameterModification: false,
                    allowSorting: false,
                    allowFiltering: false,
                    allowPivotTableInteractivity: false
              }
      };
      Ewa.EwaControl.loadEwaAsync(fileToken, "myExcelDiv", props, onEwaLoaded);     
    }
    function onEwaLoaded() {
        document.getElementById("loadingdiv").style.display = "none";
    }
    // This sample gets the value in the highlighted cell. 
// Try clicking on different cells then running the sample.
function execute()
{
    // Get unformatted range values (getValuesAsync(1,...) where 1 = Ewa.ValuesFormat.Formatted)
    ewa.getActiveWorkbook().getActiveCell().getValuesAsync(1,getRangeValues,null);
}     

function getRangeValues(asyncResult)
{
    // Get the value from asyncResult if the asynchronous operation was successful.
    if (asyncResult.getCode() == 0)
    {
        // Get the value in active cell (located at row 0, column 0 of the
        // range which consists of a single cell (the "active cell")).
        alert("Result: " + asyncResult.getReturnValue()[0][0]);
    }
    else 
    {
          alert("Operation failed with error message " + asyncResult.getDescription() + ".");
    }    
}
    </script>
  </head>
  <body>
    <input type="button" onclick="execute();">Execute Sample</input> <<<<<Here is the problem
    <div id="myExcelDiv" style="width: 402px; height: 346px"></div>     
  </body>
</html>

上記を onclick="alert('hello')" に変更すると正常に動作しますが、execute(); を使用するとセルの値が警告されません。. 誰かがコードをコピーして .html ファイルに貼り付けて、それが私の側の問題なのかどうか、Microsoft コードが機能するかどうかを確認できるかもしれません。それが機能しない場合、それも有用な情報になります。

4

1 に答える 1