workbooks.open w / direct path不起作用,但是使用HTML id解决方法,为什么呢?

时间:2016-03-09 00:50:01

标签: javascript excel path

我已经尝试了好几天来解决这个问题,这让我发疯了。我尝试使用HTML和JavaScript读取Excel数据。

当我执行以下操作时,没有任何作用

function getExcelData() {
    var ex;
    try {
      ex = new ActiveXObject("Excel.Application");
    } catch (e) {
      alert('Your browser does not support the Activex object.\nPlease switch to Internet Explorer.');
      return false;
    }
    ex.Workbooks.Open("C:\Users\me\Desktop\test.xlsx");
    var eSheet = ex.Worksheets("Sheet2");

但是当我做同样的事情时,只添加我不需要/想要的多层代码,它确实有用。

function _get(id) {
  return document.getElementById(id);
}

function getExcelData() {
    var filePath = _get('filePath');

    var ex;
    try {
      ex = new ActiveXObject("Excel.Application");
    } catch (e) {
      alert('Your browser does not support the Activex object.\nPlease switch to Internet Explorer.');
      return false;
    }
    ex.Workbooks.Open(filePath.value);
    var eSheet = ex.Worksheets("Sheet2");


<INPUT TYPE="hidden" ID="filePath" value="C:\Users\me\Desktop\test.xlsx" hidden="true">

我已经检查过,filePath.value与&#34; C:\ Users \ me \ Desktop \ test.xlsx&#34;完全相同。在线我发现如何从excel上传数据的每个例子都将文件路径直接放入Workbooks.Open,那么为什么这对我不起作用,为什么这个解决方法起作用呢?谢谢,如果你能帮忙的话!

1 个答案:

答案 0 :(得分:0)

在Javascript中,您需要转义字符串文字中的任何反斜杠:

ex.Workbooks.Open("C:\\Users\\me\\Desktop\\test.xlsx");

当值来自输入时,无需转义斜杠