workbooks.open瓦特/直接path不起作用,但与HTML ID解决方法,它为什么?

我一直在试图解决这个问题,这让我疯狂。 我正在尝试使用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与“C:\ Users \ me \ Desktop \ test.xlsx”完全一样,并且在线查找每一个如何从excel上传数据的例子,都将文件path直接放到工作簿中。打开,那么为什么不为我工作,为什么这个解决方法的工作呢? 谢谢,如果你能帮助!

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

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

当值来自input时,不需要跳过斜杠