2015-10-23 5 views
0

Je veux créer une fonction javacript simple qui peut stocker des données à partir de fichiers xls dans un tableau. Mon code est comme ci-dessous mais il ne me rend rien, personne ne peut m'aider?Lire le fichier Xls en utilisant javascript

<!DOCTYPE html> 
 
<html lang="en"> 
 

 

 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"> 
 
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"> 
 
    <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> 
 
\t <script> 
 
function GetData(){ 
 
      var excel = new ActiveXObject("Excel.Application"); 
 
      var excel_file = excel.Workbooks.Open("C:\\testyt.xls"); 
 
      var excel_sheet = excel.Worksheets("Sheet2"); 
 
      for(var i=2;i<20;i++){ 
 
      var myrow = excel_sheet.Range("A"+i); //to read values in row A 
 
      document.getElementById('div1').innerHTML = myrow; 
 
      } 
 
} 
 
</script> 
 
\t 
 
\t 
 
\t 
 
\t 
 
\t <body> 
 
\t 
 
\t 
 
<form id="From1" method="post"> 
 
    <div1 id="div1"> 
 
<h2></h2> 
 
    </div1> 
 
<p style="font-size:150%;margin-left:200px; margin-top:60px">Read Data </p> 
 
<input type="button" onclick="GetData();"/> 
 
</form> 
 

 
</body> 
 
</html> 
 
</html>

+0

À moins que vous n'utilisiez IE (qui est fondamentalement maintenant obsolète) il n'y a aucun espoir que cela fonctionne comme écrit. Quelles erreurs voyez-vous dans la console des outils de développement lorsque vous essayez de l'exécuter? –

+0

J'amuse seulement IE mais encore ça ne fonctionne pas pouvez-vous me donner un autre lien pour le tutoriel pour le même? – Marshmellow

+0

voir la réponse fournie par TJ Crowder ci-dessous ce qui devrait être utile. –

Répondre

0

Le seul navigateur pris en charge ActiveX était IE, et uniquement avec les paramètres de sécurité très permissives. IE Edge abandonne ActiveX entièrement. Cela signifie que vous ne pouvez plus utiliser ActiveXObject, sauf si vous ciblez IE11 et plus tôt sur un intranet. Vous devrez soit effectuer votre traitement sur un serveur, soit utiliser le File API pour lire les données xls brutes et les traiter dans le navigateur (ce qui n'est pas négligeable!).


Dans un environnement intranet IE uniquement en utilisant jusqu'à IE11, avec vos paramètres de sécurité pour permettre l'écoute ActiveX dans la zone Intranet, la partie ActiveX pourrait fonctionner, mais vous avez un bug dans votre code. Vous avez cette ligne dans la boucle:

document.getElementById('div1').innerHTML = myrow; 

... ce qui signifie que vous remplissez cette div avec le contenu de la ligne 2, puis l'écrasez avec le contenu de la ligne 3, puis ovewrite que avec le contenu de la ligne 4, etc.

Si vous voulez que le contenu de toutes les lignes, vous aurez envie de plusieurs divs ou similaires:

document.getElementById('div' + i).innerHTML = myrow; 

(Suppose divs avec id s comme div2 par div22.)

Notez également que si vous n'utilisez pas jQuery, vous ne pouvez pas l'inclure; ou vous pouvez continuer à l'inclure, puis l'utiliser it: $("#div" + i).html(myrow);