使用 ActiveXObject (JavaScript) 读取 Excel 或 OpenOffice (.ods) 文件

Posted

技术标签:

【中文标题】使用 ActiveXObject (JavaScript) 读取 Excel 或 OpenOffice (.ods) 文件【英文标题】:Read Excel or OpenOffice (.ods) files Using ActiveXObject (JavaScript) 【发布时间】:2016-03-16 06:21:59 【问题描述】:

在我的系统中,我没有 MS Office,我有 Openoffice。在这里我的要求是我想用 ActiveXObject (javascript) 读取 .xls .xlsx 和 .ods 文件。通过使用下面的代码,我只读取 .xls 文件。这里我怎样才能用 ActiveXobjects 读取所有类型的 excel 文件?

    <script type="text/javascript">
    function ReadMyFile()
    
        var ControlCn = new ActiveXObject("ADODB.Connection");
        var Conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = D:\\DailyReport.ods; Persist Security Info=False;Extended Properties=Excel 8.0;";
        ControlCn.Open(Conn);
        var rs = new ActiveXObject("ADODB.Recordset");
        var SQL = "select * from [Sheet1$]";
        rs.Open(SQL, ControlCn);
        if(rs.bof)
        
            document.write('No Data Avaliable');
         

        if(!rs.bof)
        
            rs.MoveFirst()
            while(!rs.eof)
            
                for(var i=0; i!= rs.fields.count; ++i)
                                            
                    document.write(rs.fields(i).value + ", ");
                
                document.write("<br />");
                rs.MoveNext()
            
        
        rs.Close();
        ControlCn.Close(); 

    
    </script>
</head>
<body>
    <input type="button" value="Click To Read Your File" onClick="ReadMyFile()">
</body>

【问题讨论】:

【参考方案1】:

要创建自动化 OpenOffice Calc 的 ActiveXObject:

var objServiceManager= new ActiveXObject("com.sun.star.ServiceManager");

见https://www.openoffice.org/udk/common/man/tutorial/office_automation.html

我认为这个对象不会处理执行的 SQL 命令。

【讨论】:

以上是关于使用 ActiveXObject (JavaScript) 读取 Excel 或 OpenOffice (.ods) 文件的主要内容,如果未能解决你的问题,请参考以下文章

使用 ActiveXObject (JavaScript) 读取 Excel 或 OpenOffice (.ods) 文件

ActiveX控件之ActiveXObject is not defined

Google Apps脚本:引用 ActiveXObject

在没有activexobject的情况下获取上传文件的大小?

如何使用JavaScript读取Excel文件(不使用ActiveXObject)

JS采用ActiveXObject实现用户在提交表单时屏蔽敏感词的功能