如何使用JavaScript读取Excel文件(不使用ActiveXObject)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用JavaScript读取Excel文件(不使用ActiveXObject)相关的知识,希望对你有一定的参考价值。
我的朋友让我做一个简单的应用程序,从Excel文件生成图表(条形图,曲线图)。我选择使用javascript作为一种语言,因为我已经知道强大的chart.js。但是在使用chart.js之前,我必须从Excel文件中收集数据。那么如何通过JavaScript读取Excel文件?
经过一些研究,我已经设法使用Internet Explorer(使用ActiveX)执行此操作,但我需要它跨浏览器工作。
有一些JavaScript库允许在纯JavaScript中解析XLS和XLSX。我用Chrome测试过(虽然在Windows上)它运行良好。
以下是关于此问题的另一个视角,您可以在Funfun Excel加载项的帮助下直接在Excel中使用JavaScript,而不是使用JavaScript读取Excel文件。基本上,Funfun是一个允许您在Excel中使用JavaScript的工具,因此您可以使用Chart.js等库来绘制电子表格中数据的图表。
基本上,你需要做的是
1)。从Office加载项存储插入Funfun加载项
2)。创建一个新的Funfun或从Funfun在线编辑器加载样本
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的开发人员。
我认为没有使用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功能。
以上是关于如何使用JavaScript读取Excel文件(不使用ActiveXObject)的主要内容,如果未能解决你的问题,请参考以下文章
JS-XLS/X读取和解析Excel表格文件(xls/xlsx)的JavaScript插件
使用 ActiveXObject (JavaScript) 读取 Excel 或 OpenOffice (.ods) 文件
一个在手机端运行的HTML文件如何通过JavaScript在本地创建一个excel文件并写入数据?