从JSP页面,我需要浏览excel文件,并且在系统上选择文件后,我需要阅读excel文件的内容并填写表格。
目前,我已经尝试使用以下代码,但是它仅在IE中有效,并且对ActiveXObject的IE互联网选项进行了一些更改。在其他浏览器中不起作用。
<script> function mytest2() { var Excel; Excel = new ActiveXObject("Excel.Application"); Excel.Visible = false; form1.my_textarea2.value = Excel.Workbooks.Open("C:/Documents and Settings/isadmin/Desktop/test.xlsx").ActiveSheet.Cells(1,1).Value; Excel.Quit(); } </script>
请提出一些解决方案,以使其在所有浏览器中均可使用。
通常无法在浏览器中通过JavaScript读写任何文件。因此,没有任何其他插件,您将无法从浏览器读取/写入Excel文件。Excel的ActiveX对象允许您执行此操作,但是只有IE支持ActiveX对象。
可能还有其他浏览器的其他插件,但是我不知道。
首先,您为什么要这样做?你可以举一个用例吗?也许有比您尝试的更好的选择。
更新
您将必须将excel文件传递到服务器,并在服务器端(例如,在servlet中)读取excel。
您将必须<input type='file'>在JSP中以多部分形式使用 <form name="myForm" action="myServlet" enctype="multipart/form-data" method="post">
<input type='file'>
<form name="myForm" action="myServlet" enctype="multipart/form-data" method="post">
在服务器端,您可能要使用Apache Commons File Upload。
拥有文件(或其上的流)后,可以使用例如Apache POI HSSF / XSSF解析文件,然后将数据更新到数据库或将其传递回JSP。