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

问题描述 投票:12回答:3

我的朋友让我做一个简单的应用程序,从Excel文件生成图表(条形图,曲线图)。我选择使用JavaScript作为一种语言,因为我已经知道强大的chart.js。但是在使用chart.js之前,我必须从Excel文件中收集数据。那么如何通过JavaScript读取Excel文件?

经过一些研究,我已经设法使用Internet Explorer(使用ActiveX)执行此操作,但我需要它跨浏览器工作。

javascript excel charts highcharts
3个回答
10
投票

有一些JavaScript库允许在纯JavaScript中解析XLSXLSX。我用Chrome测试过(虽然在Windows上)它运行良好。


4
投票

以下是关于此问题的另一个视角,您可以在Funfun Excel加载项的帮助下直接在Excel中使用JavaScript,而不是使用JavaScript读取Excel文件。基本上,Funfun是一个允许您在Excel中使用JavaScript的工具,因此您可以使用Chart.js等库来绘制电子表格中数据的图表。

基本上,你需要做的是

1)。从Office加载项存储插入Funfun加载项

enter image description here

2)。创建一个新的Funfun或从Funfun在线编辑器加载样本

enter image description here

3)。像在任何其他JavaScript编辑器中一样编写JavaScrip代码。在此步骤中,为了直接使用电子表格中的数据,您需要编写一些JSON I / O以进行Excel单元格引用。这个值在Setting-short中的位置但这只是几行。例如,假设我们在电子表格中有一些如下所示的数据。平均小时数在单元格A1中。

Average hours    Jan    Feb   Mar    Apr
Baby Jones       93.5   81    94.5   95.5
Joanne Jones     91.5   90    88.5   85.5

在这种情况下,JSON I / O值将是:

{
    "months": "=C6:G6",
    "manager1": "=C7:G7",
    "manager2": "=C8:G8"
}

您可以查看Funfun documentation以获得更多解释。

4)。运行代码以绘制图表

这是我在Funfun在线编辑器上使用JavaScript(Chart.js)和Excel数据制作的示例图表。你可以在下面的链接上查看它。您也可以轻松地将其加载到Excel中,如步骤2中所述。

https://www.funfun.io/1/edit/5a365e7c74efa7334ff272a6

披露:我是Funfun的开发人员。


-1
投票

我认为没有使用ActiveX你不能读取excel文件..我不是说你不能读取没有ActiveX的excel文件文件可能有一种方法,但我不知道那样,所以如果你想阅读使用Activex然后这是您可以用来读取excel文件的代码

<input type="button" id="btnSubmit" onclick="readdata(1, 2)" value="Submit" />
<script>
var xVal = 1;
var yVal = 2

    function readdata(x,y) {
        x = xVal;
        y = yVal;
        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");

            for(i=0;i<5;i++)
            {
               var data = excel_sheet.Cells(i,2).Value;
                drawWithexcelValue(data);
            }


        }
        catch (ex) {
            alert(ex);
        }

</script>

它只能在IE 9及更高版本中运行,你必须从设置中激活activeX功能。

© www.soinside.com 2019 - 2024. All rights reserved.