如何使用javascript从用户定义的excel文件中获取输入

how to take input from user defined excel file using javascript

本文关键字:文件 excel 获取 输入 定义 何使用 javascript 用户      更新时间:2023-09-26

大家好。。我正在制作一个页面,我必须从用户那里获取excel文件并读取该文件。。但我所知道的只是通过提供特定文件的地址来读取它。。为此,我使用javascript和html。。这是我读取excel文件的代码

        <input type="button" id="btnSubmit" onclick="readdata(1, 2)" value="Submit" />
                <script>
            function readdata(x,y) {

       try {
        var excel = new ActiveXObject("Excel.Application");
        excel.Visible = false;
        var excel_file = excel.Workbooks.Open("D:''Test.xls");//                            
               alert(excel_file.worksheets.count);
        var excel_sheet = excel_file.Worksheets("Sheet1");
        var data = excel_sheet.Cells(x, y).Value;
        //alert(data);
        drawWithexcelValue(data);
    }
    catch (ex) {
        alert(ex);
    }
    //    return data;

     }
     </script>

这是我通过定义特定excel文件的路径来读取excel文件的代码。。。现在我要做的就是从用户那里获取excel文件。。伙计们请帮忙。。

任何通过代码提供的帮助都将不胜感激。。

有人请帮我

正如@Alex K所提到的,这只适用于IE。这里有一个可能的解决方案:

将所有Excel文件放在同一文件夹中。例如:C:'sheets'(编辑:我认为这是最简单的解决方案,因为我不知道如何通过javascript获得文件的完整和真实路径)

现在将您的代码更改为以下内容:

<input type="file" id='excelFile' />
<button id='loadExcel'>Load Excel File</button>
<script type="text/javascript">
    var EXCELDIR = "C:''sheets''";
    var loadExcel = document.getElementById('loadExcel');
    loadExcel.onclick = function() {
        var filepath = EXCELDIR + document.getElementById('excelFile').value.split('''')[2];
        readdata(1,2, filepath);
    }
    function readdata(x,y,filepath) {
       try {
        var excel = new ActiveXObject("Excel.Application");
        excel.Visible = false;
        var excel_file = excel.Workbooks.Open(filepath);                       
               alert(excel_file.worksheets.count);
        var excel_sheet = excel_file.Worksheets("Sheet1");
        var data = excel_sheet.Cells(x, y).Value;
        //alert(data);
        drawWithexcelValue(data);
        }
        catch (ex) {
            alert(ex);
        }
        //    return data;

    }
</script>

免责声明:我没有检查代码,因为我在mac上,希望这是有效的。