2014-06-24 7 views
0

Je souhaite exporter une table de ma page html vers un fichier .csv. Je peux utiliser quelque chose comme:Exporter vers .csv depuis html

private void GenerateExcelFileOnType(string filePath1, ref DataTable dt) 
     { 
      if (dt != null) 
      { 
       string line = string.Empty; 
       if (dt.Rows.Count > 0) 
       { 
        string str = dt.ToCSV(); 
        using (StreamWriter sw = new StreamWriter(filePath1)) 
        { 
         sw.Write(str); 
        } 
       } 
       dt.Clear(); 
       dt = null; 
      } 
     } 

Mais est-il un moyen avec lequel je peux exporter directement depuis la page html, comme nous le faisons une print (windows.print)

Répondre

0

Pour autant que je sache, il n'y a aucun moyen fiable de lancer un fichier téléchargeable directement à partir d'une page Web, autre que d'envoyer une autre requête HTTP et de répondre avec un type mime téléchargeable.

Je ne peux pas vraiment voir un grand besoin d'un non plus. Tant que vous pouvez envoyer une demande avec les différentes informations nécessaires, votre serveur peut répondre de manière appropriée.

Mise à jour

Il semble, d'après vos commentaires, que vous ne cherchez pas à écrire réellement un fichier CSV localement. Si vous voulez juste afficher le CSV sous forme de texte dans le navigateur, puis bien sûr cela est possible, avec une itération simple:

function csv(id){ 

    var output = ''; 

    $('table#' + id + ' tr').each(function(i){ 

    if(i) 
     output += '</br>'; 

    var children = $(this).find('td, th'); 

    children.each(function(j){ 

     output += '\"' + $(this).html() + '\"'; 

     if(j < children.length - 1) 
     output += ', '; 

    }); 
    }); 

    return output; 

} 

est ici un fiddle ...

+0

D'accord, mais peut Ne suis-je pas parcourir les rangées de la table, et les écrire à un csv? –

+0

La réponse courte est non. Vous pouvez parcourir une table et envoyer les données à votre serveur, créer le côté serveur CSV, puis le renvoyer au navigateur pour le téléchargement. Mais le navigateur ne vous permet pas de * 'écrire' * dans un fichier local sur la machine du client. Ce serait un gros défaut de sécurité. – shennan

+0

Hey, j'ai quelque chose! Jetez un oeil à ça! http://www.kunalbabre.com/projects/table2CSV.php –

Questions connexes