J'ai un problème lors d'un export de donnée vers excel, dans le fichier créé
dynamiquement se trouve la copie conforme de mon affichage HTML mais pas les
données que je souhaite.
D'où vient le problème ?
Voici mon code :
Private Sub btnExporter_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnExporter.Click
Try
Dim mDataGridSalesItem As DataGridItem
Dim chkExport As CheckBox
Dim mCODECD As String
Dim count As Integer = 0
Dim item As DataGridItem
Dim sbrHTML As System.Text.StringBuilder = New
System.Text.StringBuilder
' Vérification du nombre d'enregistrement a exporter
For Each item In DataGridSales.Items
DetermineSelection(item, count)
Next
sbrHTML.Append("<table Border='1' ID='Table1'>")
sbrHTML.Append("<tr><td colSpan='11'><center><font
size='4'>Ventes - Export des CODECD du " +
Date.Today.ToLongDateString.ToString + "</font></center></td></tr>")
sbrHTML.Append("<tr><th>CODECD</th><th>Description
produit</th><th>Fournisseur(s) 1</th><th>Fournisseur(s)
2</th><th>PPUB</th><th>PPUB Min.</th><th>PPUB Max.</th><th>Ecart
Type</th><th>Quantité</th><th>Nombre de
pharmacie(s)</th><th>WeekCode</th></tr>")
If count > 0 Then
For Each mDataGridSalesItem In DataGridSales.Items
chkExport = mDataGridSalesItem.FindControl("chkSel")
If chkExport.Checked Then
Try
Dim mConn As New SqlConnection(strConnect)
mConn.Open()
Dim mCmd As New SqlCommand("SELECT * FROM
CODE_SALES_CSA WHERE CSA_CODECD ='" +
CType(mDataGridSalesItem.FindControl("hyperlinkCODECD"), HyperLink).Text +
"'", mConn)
Dim mDr As SqlDataReader = mCmd.ExecuteReader()
While mDr.Read()
sbrHTML.Append("<tr>")
If Not IsDBNull(mDr.Item("CSA_CODECD")) Then
sbrHTML.Append("<td>" +
mDr.Item("CSA_CODECD").ToString() + "</td>")
Else
sbrHTML.Append("<td></td>")
End If
If Not IsDBNull(mDr.Item("CSA_PRDDESC")) Then
sbrHTML.Append("<td>" +
mDr.Item("CSA_PRDDESC").ToString() + "</td>")
Else
sbrHTML.Append("<td></td>")
End If
If Not IsDBNull(mDr.Item("CSA_PSUP")) Then
sbrHTML.Append("<td>" +
mDr.Item("CSA_PSUP").ToString() + "</td>")
Else
sbrHTML.Append("<td></td>")
End If
If Not IsDBNull(mDr.Item("CSA_SSUP")) Then
sbrHTML.Append("<td>" +
mDr.Item("CSA_SSUP").ToString() + "</td>")
Else
sbrHTML.Append("<td></td>")
End If
If Not IsDBNull(mDr.Item("CSA_AVG_PRICE"))
Then
sbrHTML.Append("<td>" +
FormatNumber(mDr.Item("CSA_AVG_PRICE"), 2) + " €</td>")
Else
sbrHTML.Append("<td></td>")
End If
If Not IsDBNull(mDr.Item("CSA_MIN_PRICE"))
Then
sbrHTML.Append("<td>" +
FormatNumber(mDr.Item("CSA_MIN_PRICE"), 2) + " €</td>")
Else
sbrHTML.Append("<td></td>")
End If
If Not IsDBNull(mDr.Item("CSA_MAX_PRICE"))
Then
sbrHTML.Append("<td>" +
FormatNumber(mDr.Item("CSA_MAX_PRICE"), 2) + " €</td>")
Else
sbrHTML.Append("<td></td>")
End If
If Not IsDBNull(mDr.Item("CSA_STDEV_PRICE"))
Then
sbrHTML.Append("<td>" +
FormatNumber(mDr.Item("CSA_STDEV_PRICE"), 2) + " €</td>")
Else
sbrHTML.Append("<td></td>")
End If
If Not IsDBNull(mDr.Item("CSA_SUM_QTY")) Then
sbrHTML.Append("<td>" +
Format(mDr.Item("CSA_SUM_QTY"), "# ##0").ToString() + "</td>")
Else
sbrHTML.Append("<td></td>")
End If
If Not
IsDBNull(mDr.Item("CSA_COUNT_PHARCD")) Then
sbrHTML.Append("<td>" +
Format(mDr.Item("CSA_COUNT_PHARCD"), "# ##0").ToString() + "</td>")
Else
sbrHTML.Append("<td></td>")
End If
If Not IsDBNull(mDr.Item("CSA_WEEKCD")) Then
sbrHTML.Append("<td>" +
mDr.Item("CSA_WEEKCD").ToString() + "</td>")
Else
sbrHTML.Append("<td></td>")
End If
sbrHTML.Append("</tr>")
Dim myFileName As String = "ReportSales" +
Microsoft.VisualBasic.Replace(Date.Today.ToShortDateString, "/", "_") + ".xls"
Dim swXLS As StreamWriter = New
StreamWriter(Server.MapPath("\UnknownManagement\IHM\Export\Report\") +
myFileName, False, System.Text.Encoding.Unicode)
swXLS.Write(sbrHTML.ToString())
swXLS.Close()
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Marc (Fr)
salut,
ton datareader est-il bien rempli ? as-tu verifié le contenu des champs en executant le code en pas a pas par exemple ?
une petite remarque, ca serait plus sympa de mettre l'ouverture et la fermeture de connexion a l'exterieur de ton for each ... next ; enfin c'est mon avis :-)
Marc.
"Thibault" a écrit :
Bonjour à tous,
J'ai un problème lors d'un export de donnée vers excel, dans le fichier créé dynamiquement se trouve la copie conforme de mon affichage HTML mais pas les données que je souhaite.
D'où vient le problème ?
Voici mon code :
Private Sub btnExporter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExporter.Click Try Dim mDataGridSalesItem As DataGridItem Dim chkExport As CheckBox Dim mCODECD As String Dim count As Integer = 0 Dim item As DataGridItem
Dim sbrHTML As System.Text.StringBuilder = New System.Text.StringBuilder
' Vérification du nombre d'enregistrement a exporter For Each item In DataGridSales.Items DetermineSelection(item, count) Next
sbrHTML.Append("<table Border='1' ID='Table1'>") sbrHTML.Append("<tr><td colSpan='11'><center><font size='4'>Ventes - Export des CODECD du " + Date.Today.ToLongDateString.ToString + "</font></center></td></tr>") sbrHTML.Append("<tr><th>CODECD</th><th>Description produit</th><th>Fournisseur(s) 1</th><th>Fournisseur(s) 2</th><th>PPUB</th><th>PPUB Min.</th><th>PPUB Max.</th><th>Ecart Type</th><th>Quantité</th><th>Nombre de pharmacie(s)</th><th>WeekCode</th></tr>")
If count > 0 Then
For Each mDataGridSalesItem In DataGridSales.Items chkExport = mDataGridSalesItem.FindControl("chkSel") If chkExport.Checked Then Try Dim mConn As New SqlConnection(strConnect) mConn.Open()
Dim mCmd As New SqlCommand("SELECT * FROM CODE_SALES_CSA WHERE CSA_CODECD ='" + CType(mDataGridSalesItem.FindControl("hyperlinkCODECD"), HyperLink).Text + "'", mConn)
Dim mDr As SqlDataReader = mCmd.ExecuteReader()
While mDr.Read()
sbrHTML.Append("<tr>") If Not IsDBNull(mDr.Item("CSA_CODECD")) Then sbrHTML.Append("<td>" + mDr.Item("CSA_CODECD").ToString() + "</td>") Else sbrHTML.Append("<td></td>") End If If Not IsDBNull(mDr.Item("CSA_PRDDESC")) Then sbrHTML.Append("<td>" + mDr.Item("CSA_PRDDESC").ToString() + "</td>") Else sbrHTML.Append("<td></td>") End If If Not IsDBNull(mDr.Item("CSA_PSUP")) Then sbrHTML.Append("<td>" + mDr.Item("CSA_PSUP").ToString() + "</td>") Else sbrHTML.Append("<td></td>") End If If Not IsDBNull(mDr.Item("CSA_SSUP")) Then sbrHTML.Append("<td>" + mDr.Item("CSA_SSUP").ToString() + "</td>") Else sbrHTML.Append("<td></td>") End If If Not IsDBNull(mDr.Item("CSA_AVG_PRICE")) Then sbrHTML.Append("<td>" + FormatNumber(mDr.Item("CSA_AVG_PRICE"), 2) + " €</td>") Else sbrHTML.Append("<td></td>") End If If Not IsDBNull(mDr.Item("CSA_MIN_PRICE")) Then sbrHTML.Append("<td>" + FormatNumber(mDr.Item("CSA_MIN_PRICE"), 2) + " €</td>") Else sbrHTML.Append("<td></td>") End If If Not IsDBNull(mDr.Item("CSA_MAX_PRICE")) Then sbrHTML.Append("<td>" + FormatNumber(mDr.Item("CSA_MAX_PRICE"), 2) + " €</td>") Else sbrHTML.Append("<td></td>") End If If Not IsDBNull(mDr.Item("CSA_STDEV_PRICE")) Then sbrHTML.Append("<td>" + FormatNumber(mDr.Item("CSA_STDEV_PRICE"), 2) + " €</td>") Else sbrHTML.Append("<td></td>") End If If Not IsDBNull(mDr.Item("CSA_SUM_QTY")) Then sbrHTML.Append("<td>" + Format(mDr.Item("CSA_SUM_QTY"), "# ##0").ToString() + "</td>") Else sbrHTML.Append("<td></td>") End If If Not IsDBNull(mDr.Item("CSA_COUNT_PHARCD")) Then sbrHTML.Append("<td>" + Format(mDr.Item("CSA_COUNT_PHARCD"), "# ##0").ToString() + "</td>") Else sbrHTML.Append("<td></td>") End If If Not IsDBNull(mDr.Item("CSA_WEEKCD")) Then sbrHTML.Append("<td>" + mDr.Item("CSA_WEEKCD").ToString() + "</td>") Else sbrHTML.Append("<td></td>") End If sbrHTML.Append("</tr>")
Dim myFileName As String = "ReportSales" + Microsoft.VisualBasic.Replace(Date.Today.ToShortDateString, "/", "_") + ".xls"
Dim swXLS As StreamWriter = New StreamWriter(Server.MapPath("UnknownManagementIHMExportReport") + myFileName, False, System.Text.Encoding.Unicode) swXLS.Write(sbrHTML.ToString()) swXLS.Close()
ton datareader est-il bien rempli ? as-tu verifié le contenu des champs en
executant le code en pas a pas par exemple ?
une petite remarque, ca serait plus sympa de mettre l'ouverture et la
fermeture de connexion a l'exterieur de ton for each ... next ; enfin c'est
mon avis :-)
Marc.
"Thibault" a écrit :
Bonjour à tous,
J'ai un problème lors d'un export de donnée vers excel, dans le fichier créé
dynamiquement se trouve la copie conforme de mon affichage HTML mais pas les
données que je souhaite.
D'où vient le problème ?
Voici mon code :
Private Sub btnExporter_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnExporter.Click
Try
Dim mDataGridSalesItem As DataGridItem
Dim chkExport As CheckBox
Dim mCODECD As String
Dim count As Integer = 0
Dim item As DataGridItem
Dim sbrHTML As System.Text.StringBuilder = New
System.Text.StringBuilder
' Vérification du nombre d'enregistrement a exporter
For Each item In DataGridSales.Items
DetermineSelection(item, count)
Next
sbrHTML.Append("<table Border='1' ID='Table1'>")
sbrHTML.Append("<tr><td colSpan='11'><center><font
size='4'>Ventes - Export des CODECD du " +
Date.Today.ToLongDateString.ToString + "</font></center></td></tr>")
sbrHTML.Append("<tr><th>CODECD</th><th>Description
produit</th><th>Fournisseur(s) 1</th><th>Fournisseur(s)
2</th><th>PPUB</th><th>PPUB Min.</th><th>PPUB Max.</th><th>Ecart
Type</th><th>Quantité</th><th>Nombre de
pharmacie(s)</th><th>WeekCode</th></tr>")
If count > 0 Then
For Each mDataGridSalesItem In DataGridSales.Items
chkExport = mDataGridSalesItem.FindControl("chkSel")
If chkExport.Checked Then
Try
Dim mConn As New SqlConnection(strConnect)
mConn.Open()
Dim mCmd As New SqlCommand("SELECT * FROM
CODE_SALES_CSA WHERE CSA_CODECD ='" +
CType(mDataGridSalesItem.FindControl("hyperlinkCODECD"), HyperLink).Text +
"'", mConn)
Dim mDr As SqlDataReader = mCmd.ExecuteReader()
While mDr.Read()
sbrHTML.Append("<tr>")
If Not IsDBNull(mDr.Item("CSA_CODECD")) Then
sbrHTML.Append("<td>" +
mDr.Item("CSA_CODECD").ToString() + "</td>")
Else
sbrHTML.Append("<td></td>")
End If
If Not IsDBNull(mDr.Item("CSA_PRDDESC")) Then
sbrHTML.Append("<td>" +
mDr.Item("CSA_PRDDESC").ToString() + "</td>")
Else
sbrHTML.Append("<td></td>")
End If
If Not IsDBNull(mDr.Item("CSA_PSUP")) Then
sbrHTML.Append("<td>" +
mDr.Item("CSA_PSUP").ToString() + "</td>")
Else
sbrHTML.Append("<td></td>")
End If
If Not IsDBNull(mDr.Item("CSA_SSUP")) Then
sbrHTML.Append("<td>" +
mDr.Item("CSA_SSUP").ToString() + "</td>")
Else
sbrHTML.Append("<td></td>")
End If
If Not IsDBNull(mDr.Item("CSA_AVG_PRICE"))
Then
sbrHTML.Append("<td>" +
FormatNumber(mDr.Item("CSA_AVG_PRICE"), 2) + " €</td>")
Else
sbrHTML.Append("<td></td>")
End If
If Not IsDBNull(mDr.Item("CSA_MIN_PRICE"))
Then
sbrHTML.Append("<td>" +
FormatNumber(mDr.Item("CSA_MIN_PRICE"), 2) + " €</td>")
Else
sbrHTML.Append("<td></td>")
End If
If Not IsDBNull(mDr.Item("CSA_MAX_PRICE"))
Then
sbrHTML.Append("<td>" +
FormatNumber(mDr.Item("CSA_MAX_PRICE"), 2) + " €</td>")
Else
sbrHTML.Append("<td></td>")
End If
If Not IsDBNull(mDr.Item("CSA_STDEV_PRICE"))
Then
sbrHTML.Append("<td>" +
FormatNumber(mDr.Item("CSA_STDEV_PRICE"), 2) + " €</td>")
Else
sbrHTML.Append("<td></td>")
End If
If Not IsDBNull(mDr.Item("CSA_SUM_QTY")) Then
sbrHTML.Append("<td>" +
Format(mDr.Item("CSA_SUM_QTY"), "# ##0").ToString() + "</td>")
Else
sbrHTML.Append("<td></td>")
End If
If Not
IsDBNull(mDr.Item("CSA_COUNT_PHARCD")) Then
sbrHTML.Append("<td>" +
Format(mDr.Item("CSA_COUNT_PHARCD"), "# ##0").ToString() + "</td>")
Else
sbrHTML.Append("<td></td>")
End If
If Not IsDBNull(mDr.Item("CSA_WEEKCD")) Then
sbrHTML.Append("<td>" +
mDr.Item("CSA_WEEKCD").ToString() + "</td>")
Else
sbrHTML.Append("<td></td>")
End If
sbrHTML.Append("</tr>")
Dim myFileName As String = "ReportSales" +
Microsoft.VisualBasic.Replace(Date.Today.ToShortDateString, "/", "_") + ".xls"
Dim swXLS As StreamWriter = New
StreamWriter(Server.MapPath("UnknownManagementIHMExportReport") +
myFileName, False, System.Text.Encoding.Unicode)
swXLS.Write(sbrHTML.ToString())
swXLS.Close()
ton datareader est-il bien rempli ? as-tu verifié le contenu des champs en executant le code en pas a pas par exemple ?
une petite remarque, ca serait plus sympa de mettre l'ouverture et la fermeture de connexion a l'exterieur de ton for each ... next ; enfin c'est mon avis :-)
Marc.
"Thibault" a écrit :
Bonjour à tous,
J'ai un problème lors d'un export de donnée vers excel, dans le fichier créé dynamiquement se trouve la copie conforme de mon affichage HTML mais pas les données que je souhaite.
D'où vient le problème ?
Voici mon code :
Private Sub btnExporter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExporter.Click Try Dim mDataGridSalesItem As DataGridItem Dim chkExport As CheckBox Dim mCODECD As String Dim count As Integer = 0 Dim item As DataGridItem
Dim sbrHTML As System.Text.StringBuilder = New System.Text.StringBuilder
' Vérification du nombre d'enregistrement a exporter For Each item In DataGridSales.Items DetermineSelection(item, count) Next
sbrHTML.Append("<table Border='1' ID='Table1'>") sbrHTML.Append("<tr><td colSpan='11'><center><font size='4'>Ventes - Export des CODECD du " + Date.Today.ToLongDateString.ToString + "</font></center></td></tr>") sbrHTML.Append("<tr><th>CODECD</th><th>Description produit</th><th>Fournisseur(s) 1</th><th>Fournisseur(s) 2</th><th>PPUB</th><th>PPUB Min.</th><th>PPUB Max.</th><th>Ecart Type</th><th>Quantité</th><th>Nombre de pharmacie(s)</th><th>WeekCode</th></tr>")
If count > 0 Then
For Each mDataGridSalesItem In DataGridSales.Items chkExport = mDataGridSalesItem.FindControl("chkSel") If chkExport.Checked Then Try Dim mConn As New SqlConnection(strConnect) mConn.Open()
Dim mCmd As New SqlCommand("SELECT * FROM CODE_SALES_CSA WHERE CSA_CODECD ='" + CType(mDataGridSalesItem.FindControl("hyperlinkCODECD"), HyperLink).Text + "'", mConn)
Dim mDr As SqlDataReader = mCmd.ExecuteReader()
While mDr.Read()
sbrHTML.Append("<tr>") If Not IsDBNull(mDr.Item("CSA_CODECD")) Then sbrHTML.Append("<td>" + mDr.Item("CSA_CODECD").ToString() + "</td>") Else sbrHTML.Append("<td></td>") End If If Not IsDBNull(mDr.Item("CSA_PRDDESC")) Then sbrHTML.Append("<td>" + mDr.Item("CSA_PRDDESC").ToString() + "</td>") Else sbrHTML.Append("<td></td>") End If If Not IsDBNull(mDr.Item("CSA_PSUP")) Then sbrHTML.Append("<td>" + mDr.Item("CSA_PSUP").ToString() + "</td>") Else sbrHTML.Append("<td></td>") End If If Not IsDBNull(mDr.Item("CSA_SSUP")) Then sbrHTML.Append("<td>" + mDr.Item("CSA_SSUP").ToString() + "</td>") Else sbrHTML.Append("<td></td>") End If If Not IsDBNull(mDr.Item("CSA_AVG_PRICE")) Then sbrHTML.Append("<td>" + FormatNumber(mDr.Item("CSA_AVG_PRICE"), 2) + " €</td>") Else sbrHTML.Append("<td></td>") End If If Not IsDBNull(mDr.Item("CSA_MIN_PRICE")) Then sbrHTML.Append("<td>" + FormatNumber(mDr.Item("CSA_MIN_PRICE"), 2) + " €</td>") Else sbrHTML.Append("<td></td>") End If If Not IsDBNull(mDr.Item("CSA_MAX_PRICE")) Then sbrHTML.Append("<td>" + FormatNumber(mDr.Item("CSA_MAX_PRICE"), 2) + " €</td>") Else sbrHTML.Append("<td></td>") End If If Not IsDBNull(mDr.Item("CSA_STDEV_PRICE")) Then sbrHTML.Append("<td>" + FormatNumber(mDr.Item("CSA_STDEV_PRICE"), 2) + " €</td>") Else sbrHTML.Append("<td></td>") End If If Not IsDBNull(mDr.Item("CSA_SUM_QTY")) Then sbrHTML.Append("<td>" + Format(mDr.Item("CSA_SUM_QTY"), "# ##0").ToString() + "</td>") Else sbrHTML.Append("<td></td>") End If If Not IsDBNull(mDr.Item("CSA_COUNT_PHARCD")) Then sbrHTML.Append("<td>" + Format(mDr.Item("CSA_COUNT_PHARCD"), "# ##0").ToString() + "</td>") Else sbrHTML.Append("<td></td>") End If If Not IsDBNull(mDr.Item("CSA_WEEKCD")) Then sbrHTML.Append("<td>" + mDr.Item("CSA_WEEKCD").ToString() + "</td>") Else sbrHTML.Append("<td></td>") End If sbrHTML.Append("</tr>")
Dim myFileName As String = "ReportSales" + Microsoft.VisualBasic.Replace(Date.Today.ToShortDateString, "/", "_") + ".xls"
Dim swXLS As StreamWriter = New StreamWriter(Server.MapPath("UnknownManagementIHMExportReport") + myFileName, False, System.Text.Encoding.Unicode) swXLS.Write(sbrHTML.ToString()) swXLS.Close()