javascript - 使用 JavaScript 调用 Excel 文件

标签 javascript excel activexobject

我对 JavaScript(以及相关编码)还很陌生。 问题如下。

我正在寻找一种调用 Excel 文件并在执行时在文档中设置一些过滤器的方法。因此所请求的文件将按指定弹出。这应该适用于 Windows 8.1。

ActiveX 显然不起作用。 有人知道如何使这项工作有效吗?有没有可以替代 ActiveX 对象的方法?

非常感谢任何帮助。

下面是我迄今为止的代码:

var sId = "1989";

var app   = "Excel.Application";
var path  = "C:\\Temp\\UmsatzGL.xls";
var sheet = "Output";
var range = "FilterWE";
var filterdefault = "(Alle)";

return_wbook = "T";
return_sheet = "T";
return_range = "T";

var UsrLanguage = "de";

switch (UsrLanguage) {
  case "de":
    alert_wbook = 'Excelmappe ' +path+' kann nicht gefunden werden!';
    alert_sheet = 'Arbeitsblatt ' +sheet+' ist nicht vorhanden!';
    alert_range = 'Bereich ' +range+' ist nicht vorhanden!';
    alert_content = 'Kunde ' +sId+' ist nicht vorhanden!';
    break;
  case "en":
    alert_wbook = 'Excel-File ' +path+' does not exist!';
    alert_sheet = 'Worksheet ' +sheet+' does not exist!';
    alert_range = 'Range ' +range+' does not exist!';
    alert_content = 'Customer ' +sId+' does not exist!';
    break;
  default:
    alert_wbook = 'Excel-File ' +path+' does not exist!';
    alert_sheet = 'Worksheet ' +sheet+' does not exist!';
    alert_range = 'Range ' +range+' does not exist!';
    alert_content = 'Customer ' +sId+' does not exist!';
    break;
}

function my_get_app(app){
try{return GetObject('',app)}
catch(e){return my_start_app(app)}
}

function my_start_app(app){
return new ActiveXObject(app)
}

function my_get_wbook(path){
try{return excel.Workbooks.Open(path)}
catch(e){return_wbook = "F";}
}

function my_get_sheet(sheet){
try{return excel.Worksheets(sheet)}
catch(e){return_sheet = "F";}
}

function my_get_range(range){
try{return excel_sheet.range(range)}
catch(e){return_range = "F";}
}

var excel = my_get_app(app);
var excel_file = my_get_wbook(path);
var excel_sheet = my_get_sheet(sheet);
var excel_range = my_get_range(range);

excel.displayalerts = false;

if (return_wbook == "F") {
                          alert(alert_wbook);
                          excel.quit();
  } else if (return_sheet == "F") {
                             alert(alert_sheet);
                             excel.quit(); 
    } else if (return_range == "F") {
                                alert(alert_range);
                                excel.quit();
                                    }

if (return_wbook != "F" && return_sheet != "F" && return_range != "F") {
        excel_range.value = filterdefault; 
        try{
            excel_range.value = sId;
            excel.Visible=true;
            excel_sheet.Activate;
           }
        catch(e){
                 alert(alert_content);
                 excel.quit();
                }
    } 

close();
}

最佳答案

我不太清楚你的问题是什么。 但我可以推荐一个可以给你插入的插件。

https://github.com/SheetJS/js-xlsx

我在 Javascript Excel OpenFile 上找到了示例代码

<html>

  <body>

    <form name="form1">
      <input type=button onClick="test()" value="Open File">
      <br><br>
    </form>

    <script type="text/javascript">
      function test() {
        var Excel = new ActiveXObject("Excel.Application");
        Excel.Visible = true;
        Excel.Workbooks.Open("teste.xlsx");
      }
    </script>
  </body>
</html>

关于javascript - 使用 JavaScript 调用 Excel 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29301177/

相关文章:

javascript - 禁用 HTML5 弹出表单验证消息

excel - 通过excel VBA以特定大小打开文件夹

javascript - ActiveXObject 并未为除 IE 之外的所有浏览器定义

Excel 公式 LIKE, AND, IF, WILDCARDS

javascript - 如何使 "ActiveXObject(' SAPI.SpVoice')"在 Firefox 中工作

Ajax 调用 : What is the difference between new ActiveXObject ("Msxml2.XMLHTTP") and new ActiveXObject ("Microsoft.XMLHTTP")?

javascript - jQuery ,将回调绑定(bind)到任何函数

javascript - webpack,限制可以导入的内容

Javascript如何转义字符

vba - 将数据锁定到 Excel 图表