Aspx/html vers excel ou autre

Signaler
Messages postés
20
Date d'inscription
vendredi 10 février 2012
Statut
Membre
Dernière intervention
20 août 2013
-
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
-
salut,
j'ai un formulaire qui remplit une bd access.
un html qui me permet de lire la bd dans un tableau, mais je souhaite avoir un bouton qui me permet d'enregistrer ce résultat dans un fichier lisible par un tableur
ci-dessous la source de l'extraction
----------------------------------------
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>

<script runat="server">
' On définit la connection
Dim Conn As New OleDbConnection ("Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & Server.MapPath("\data\athletisme.mdb"))

sub Page_Load(obj as Object, e as EventArgs)
if Not Page.IsPostBack then
FillDataGrid()
end if

FillDataGrid()
end sub

sub FillDataGrid()
'Ouverture de la connexion
dim objCmd as new OleDbCommand _
("select * from LISTE", Conn)
dim objReader as OleDbDataReader

try
objCmd.Connection.Open()
objReader = objCmd.ExecuteReader()
catch ex as Exception
lblMessage.Text = "Erreur de liaison avec la base de données."
end try

dgData.DataSource = objReader
dgData.DataBind()

objReader.Close
objCmd.Connection.Close()

end sub

function ExecuteSQL(strSQL)
dim objCmd as new OleDbCommand(strSQL, Conn)

try
objCmd.Connection.Open()
objCmd.ExecuteNonQuery()
catch ex as Exception

end try

objCmd.Connection.Close()
end function
</script>

<html>



<form runat="server">





<Columns>

















</Columns>

<HeaderStyle BackColor="#0033CC" Font-Bold="True" ForeColor="White" />




</form>

</html>

-----------------------------------
si vous souhaitez voir le le résultat du fichier www.flrlemonteil.com/données.aspx

6 réponses

Messages postés
20
Date d'inscription
vendredi 10 février 2012
Statut
Membre
Dernière intervention
20 août 2013

pardo
merci d'avance
bye A+
Alain
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
12
Salut,

il va falloir parcourir la commande toi-même, généré le résultat au format CSV (un tuple par ligne, valeurs de champs séparés par des points virgules). Rien de compliqué ;)

Lors de la génération de la Response il faudra également réécrire l'entête pour dire au client qu'il s'agit d'un document CSV, et non d'une page "normale" qui va lui arriver. Je vais t'éviter quelques recherches, voici le code correspondant (en C#) :
response.Clear();
response.Charset = "ISO-8859-1";
response.AddHeader("Expires", "Thu, 01 Dec 1994 16:00:00 GMT");
response.AddHeader("Content-Type", "text/csv; charset=ISO-8859-1");
response.AddHeader("Content-Disposition", "attachment; filename=" + filename);
response.Flush();
Messages postés
20
Date d'inscription
vendredi 10 février 2012
Statut
Membre
Dernière intervention
20 août 2013

salut,
je ne comprends pas comment utiliser le code.
merci de me donner un peu plus de détails (novice, je découvre)
merci
Alain
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
12
Re,

déjà fais le parcours de la requête pour générer le CSV dans une string.
On recausera de la Response ensuite ;)
Messages postés
389
Date d'inscription
dimanche 7 avril 2002
Statut
Membre
Dernière intervention
23 septembre 2016
2
Bonjour,
Autre solution
Utilisez une ReportViewer et une fonction LocalReport.Render("excel",...)
Mise en œuvre 3 minutes.

Megafan

Développeur de http://www.o10c.eu (Lien)


La nouvelle référence en matière de jeu de stratégie spatiale.
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
12
Ben du coup c'est moi qui aurais appris quelque chose :)

Va y'avoir d'la manoeuvre dans mes WebControls tiens :P