【问题标题】:workbooks.open w/ direct path doesn't work, but with HTML id workaround it does, why?带有直接路径的 workbooks.open 不起作用,但是使用 HTML id 解决方法可以,为什么?
【发布时间】:2016-03-09 00:50:01
【问题描述】:

我已经尝试了几天来解决这个问题,这让我发疯了。我正在尝试使用 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 上传数据的每个示例都直接将文件路径放在进入 Workbooks.Open,那么为什么这对我不起作用,为什么这个变通方法起作用呢?如果您能提供帮助,谢谢!

【问题讨论】:

    标签: javascript excel path


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2023-01-18
      • 2013-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-01
      • 2016-12-21
      • 2017-01-30
      • 2011-04-20
      相关资源
      最近更新 更多