Je veux dire .... triste pour moi
Nan j'y crois pas, en plus c'est une erreur de balise server je suis sur que le bout du tunnel n'est pas loin mais où?![]()
Je veux dire .... triste pour moi
Nan j'y crois pas, en plus c'est une erreur de balise server je suis sur que le bout du tunnel n'est pas loin mais où?![]()
Bonjour M. Lucetefalco
Avec ce code je recupère les données de la Gridview, et avec cette fonction:
Code : Sélectionner tout - Visualiser dans une fenêtre à part GridView1.RenderControl(oHtmlTextWriter)
Je spécifie l'endroit où j'aimerais créer mon fichier pourtant il ne se crée pas du coup t'as raison quand tu dis:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Protected Sub ImageButton1_Click(ByVal sender As Object, ByVal e As System.EventArgs) ExportToExcel("C:\Inetpub\wwwroot\Report.xls", GridView1) End Sub
Quesque j'ai oublié d'écrire stp?Ton code n'est pas fait pour créer un fichier
Je me suis rendu compte que le fichier n'était pas créer alors je le créé, puis à la fin de la fonction ExportToExcel() je ferme le fichier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Dim MonFichier As IO.FileStream = New IO.FileStream("C:\Inetpub\wwwroot\Report.xls", IO.FileMode.OpenOrCreate) Response.ContentType = "application/vnd.ms-excel" Response.Charset = "" Me.EnableViewState = False Dim oStringWriter As New System.IO.StringWriter Dim oHtmlTextWriter As New System.Web.UI.HtmlTextWriter(oStringWriter) GridView1.RenderControl(oHtmlTextWriter) Response.Write(oStringWriter.ToString()) MonFichier.Dispose()
Dim MonFichier As IO.FileStream = New IO.FileStream("C:\Inetpub\wwwroot\Report.xls", IO.FileMode.OpenOrCreate)MonFichier.Dispose()
Mais je me pose la question comment dire à la fonction de remplir monFichier de la gridView?
Voici mon éternel erreur quand je lance la fonction:
Le contrôle 'GridView1' de type 'GridView' doit être placé dans une balise form avec runat=server.
Malgré cela mon fichier est quand meme créé mais il est vide (la gridview ne l'a pas rempli) et excel me dit qu'il est en pleine utilisation:Le processus ne peut pas accéder au fichier 'C:\Inetpub\wwwroot\Report.xls', car il est en cours d'utilisation par un autre processus
J'ai placé la foncrion dispose() pour le fermer aussito créer mais je sais pas pourquoi!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Dim MonFichier As IO.FileStream = New IO.FileStream("C:\Inetpub\wwwroot\Report.xls", IO.FileMode.OpenOrCreate) MonFichier.Dispose()
Exusez moi pour ceux qui ont deja lu ce tutoriel, celui-ci ne cré pas le fichier (c'est à dire nous devrions le faire nous mêmes ou bien...)
Je ne comprends toujours pas le souci !!! ça fait plus que deux semaines et tu n'arrives toujours pas à exporter ton gridview ?
Essaye de voir d'autres tuto sur le net il en existe beaucoup !
Au lieu de poser des questions très basiques, essaye de tester votre vode ou de le débogguer pour bien comprendre.
http://gilles.tourreau.fr/visual_studio/visual-studio-deboguer-avec-visual-studio-20052008.html
Je souhaites pas le créer sur le server mais plutot sur ma machine en local.le but du tuto n'est pas de créer un fichier sur le serveur comme tu souhaites le faire
Faut croire qu'il y'en a qui sont dur à la résolution des problèmes.Je ne comprends toujours pas le souci !!! ça fait plus que deux semaines et tu n'arrives toujours pas à exporter ton gridview ?
J'arrète pas de fouiller des codes par 'ci et par là j'obtiends quasiment les mêmes resultats et pour couronner le tout j'utilise pas VS donc je ne peux même le débugger.
Actuellement j'ai un code qui compile sans erreurs mais j'ai du mal à comprendre à quel moment créé le fichier et précisé les informations à mettre la dedans,le format et autres...
J'ai ce bout de code (Merci Immobilis)
Merci encore pour ce que vous faites...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 protected void Button2_Click(object sender, EventArgs e) { Response.Clear(); Response.AddHeader("content-disposition", "attachment;filename=fichier.xls"); Response.Charset = ""; Response.ContentType = "application/vnd.xls"; System.IO.StringWriter stringWrite = new System.IO.StringWriter(); System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite); GridView1.RenderControl(htmlWrite); Response.Write(stringWrite.ToString()); Response.End(); } public override void VerifyRenderingInServerForm(Control control) { }
Essaye de créer un fichier excel vide qui s'appelle fichier.xls sur ton disque c:\
et change ton code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 protected void Button2_Click(object sender, EventArgs e) { Response.Clear(); Response.AddHeader("content-disposition",@"attachment;filename=c:\fichier.xls"); Response.Charset = ""; Response.ContentType = "application/vnd.xls"; System.IO.StringWriter stringWrite = new System.IO.StringWriter(); System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite); GridView1.RenderControl(htmlWrite); Response.Write(stringWrite.ToString()); Response.End(); }
Voici comment je crée le fichier vide sur mon disque:
Il se cré bien, mais orsque je l'ouvre une BDD apparait avec comme message:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Dim LeCheminFichier As String Dim Lefichier As System.IO.FileStream Dim MonWriter As System.IO.StreamWriter LeCheminFichier = "C:\Inetpub\wwwroot\FileName.xls" Lefichier = New System.IO.FileStream(LeCheminFichier, IO.FileMode.OpenOrCreate) MonWriter = New System.IO.StreamWriter(Lefichier, System.Text.Encoding.ASCII) MonWriter.Close() Lefichier.Dispose()
Mais il s'ouvre quand même quand on clic sur ouiLe format de fichier que vous tenter d'ouvrir est different de celui spécifier par l'extension de fichier.
Pour tester j'ai changer l'extension du fichier dans mon code en .xlsx alors là le fichier se crée mais ne s'ouvre plus.
Vérifie les noms des fichiers dans ton code s'ils sont les mêmes.
Pour la création du fichier vide? Oui c'est les memes
Envoie moi ton code et ta base s'il elle est en access par mail (passe par un message provée d'abord).
Ma base est en sql server 2005, c'est juste une table de numéros de téléphones.
Le code, jusque là je vous est tout donné:
Jusque là la gridview des numéros s'affiche bien, mais j'ai pas la fonction qui crée le fichier crée et rempli le fichier excel à partir des informations de la gridview.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 <%@ import Namespace= "System.Data" %> <%@ import Namespace= "System.Data.SqlClient" %> <%@ import Namespace= "System.IO" %> <%@ import Namespace= "System" %> <script language="vb" runat= "server" > 'fichier pour créer le fichier' Private sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) txt.Text="Cliquez pour créer le fichier excel " Dim LeCheminFichier As String Dim Lefichier As System.IO.FileStream Dim MonWriter As System.IO.StreamWriter LeCheminFichier = "C:\Inetpub\wwwroot\FileName.xls" Lefichier = New System.IO.FileStream(LeCheminFichier, IO.FileMode.OpenOrCreate) MonWriter = New System.IO.StreamWriter(Lefichier, System.Text.Encoding.ASCII) MonWriter.Close() Lefichier.Dispose() End Sub </script> <html> <head> <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head ><body> <form runat="server"> <asp:SqlDataSource id="SqlDataSource1" runat="server" DataSourceMode="DataReader" ConnectionString="user id=sa;password=toto; database=MaBase;server=MyServer;" SelectCommand="SELECT * FROM dbo.IT_CommunautySynch"> </asp:SqlDataSource> <asp:GridView id="GridView1" runat="server" DataSourceID="SqlDataSource1"> </asp:GridView> <asp:Label ID="txt" Text="" runat="server"></asp:Label> <asp:Button id="btn" runat="server" text="CreationExcel"></asp:Button> </form> </body> </html>
Merci encore
Tu peux mettre le script de ta base de données ?
Je ne travail qu'avec une table indépendante des autres tables,
comme toutes les tables basiques:
Tu veux les droits ou bien? C'est pas ma base de données tu comprends un peu ma réticence?CREATE DATABASE...
CREATE TABLE dbo.IT_CommunautySynch(
numero varchar (8);
)
Le script je l'ai pas parceque le proprio n'est pas là, désolé
Pourquoi? Visual Studio Express est gratuit
Pour créer et écrire dans un fichier texte: http://dotnet.developpez.com/faq/asp...adwritetxtfile
"Winter is coming" (ma nouvelle page d'accueil)
Bonjour M. Immobilis
Enfait j'ai commencé ce projet sans utilisé VS et aujourd'hui j'ai quasiment terminé.Le temps pour moi de m'adapter me coute un peu pour l'instant. Mais le prochain ce sera avec passion et envie!Pourquoi? Visual Studio Express est gratuit
Pour revenir à mon sujet je sais créer et écrire dans un fichier (en grande partie grace à vous, à M. Lucetefalco surtout)
Maintenant j'aimerais que le client, à partir d'une gridview (que j'arrive déja à afficher sur ma page, merci encore) exporte ses données sur un fichier excel (sur sa machine) lors de l'appelle d'une fonction. (avec un clic par exemple)
Merci encore
Partager