Si ca te va, voici comment j'ai procédé :
1) J'ai créé un tableau dans une feuille Excel avec des valeurs facilement identifiables.
2) J'ai créé un pie que j'ai placé par dessus, prenant ces valeurs.
3) Enregisrter sous > Format HTML
4) Renomage en xls histoire de vérifier que ça m'ouvre bien excel avec les bonnes valeurs.
5) Renomage en asp.
Ajout de la ligne :
<%
Response.ContentType ="application/vnd.ms-excel"
%>
|
Tout en haut du code.
Recherche de mes valeurs bidon, et remplacement par <%=Request.QueryString("val1" )%> etc. (c'est dans un tableau HTML)
A la place, tu pourras mettre du code ASP qui va chercher dans la base de données les bonnes valeures.
Si tu ne repecte pas le nombre de lignes/colonnes de mon exemple (ce qui est certain), alors il faut modifier les lignes :
<x:Value>
<x:DataSource>0</x:DataSource>
<x:Data>Sheet1!$B$2:$E$2</x:Data>
</x:Value>
|
Afin de prendre le bon range.
PS: Tu peux ainsi faire à peut près n'importe quel document Excel, faut juste pas avoir peur du code
PS: le répertoire "Book1_Files" est inutile, mais même si tu vires la référence qui y est faite avec la balise "<link>" en haut de la page, j'ai souvenir que ça merde, donc autant la mettre.
En tout cas, bon courrage, parceque voilà le code de mon exemple
<%
Response.ContentType ="application/vnd.ms-excel"
%>
<html xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
<meta name=ProgId content=Excel.Sheet>
<meta name=Generator content="Microsoft Excel 11">
<link rel=File-List href="Book1_files/filelist.xml">
<link rel=Edit-Time-Data href="Book1_files/editdata.mso">
<link rel=OLE-Object-Data href="Book1_files/oledata.mso">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
x\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Author>MagicBuzz</o:Author>
<o:LastAuthor>MagicBuzz</o:LastAuthor>
<o:Created>2004-07-13T20:02:12Z</o:Created>
<o:LastSaved>2004-07-13T20:03:47Z</o:LastSaved>
<o:Company>Manga-Torii</o:Company>
<o:Version>11.5606</o:Version>
</o:DocumentProperties>
</xml><![endif]-->
<style>
<!--table
{mso-displayed-decimal-separator:"\.";
mso-displayed-thousand-separator:"\,";}
@page
{margin:1.0in .75in 1.0in .75in;
mso-header-margin:.5in;
mso-footer-margin:.5in;}
tr
{mso-height-source:auto;}
col
{mso-width-source:auto;}
br
{mso-data-placement:same-cell;}
.style0
{mso-number-format:General;
text-align:general;
vertical-align:bottom;
white-space:nowrap;
mso-rotate:0;
mso-background-source:auto;
mso-pattern:auto;
color:windowtext;
font-size:10.0pt;
font-weight:400;
font-style:normal;
text-decoration:none;
font-family:Arial;
mso-generic-font-family:auto;
mso-font-charset:0;
border:none;
mso-protection:locked visible;
mso-style-name:Normal;
mso-style-id:0;}
td
{mso-style-parent:style0;
padding:0px;
mso-ignore:padding;
color:windowtext;
font-size:10.0pt;
font-weight:400;
font-style:normal;
text-decoration:none;
font-family:Arial;
mso-generic-font-family:auto;
mso-font-charset:0;
mso-number-format:General;
text-align:general;
vertical-align:bottom;
border:none;
mso-background-source:auto;
mso-pattern:auto;
mso-protection:locked visible;
white-space:nowrap;
mso-rotate:0;}
-->
</style>
<!--[if gte mso 9]><xml>
<x:ExcelWorkbook>
<x:ExcelWorksheets>
<x:ExcelWorksheet>
<x:Name>Sheet1</x:Name>
<x:WorksheetOptions>
<x:Selected/>
<x:Panes>
<x:Pane>
<x:Number>3</x:Number>
<x:ActiveRow>2</x:ActiveRow>
<x:ActiveCol>4</x:ActiveCol>
</x:Pane>
</x:Panes>
<x:ProtectContents>False</x:ProtectContents>
<x:ProtectObjects>False</x:ProtectObjects>
<x:ProtectScenarios>False</x:ProtectScenarios>
</x:WorksheetOptions>
</x:ExcelWorksheet>
<x:ExcelWorksheet>
<x:Name>Sheet2</x:Name>
<x:WorksheetOptions>
<x:ProtectContents>False</x:ProtectContents>
<x:ProtectObjects>False</x:ProtectObjects>
<x:ProtectScenarios>False</x:ProtectScenarios>
</x:WorksheetOptions>
</x:ExcelWorksheet>
<x:ExcelWorksheet>
<x:Name>Sheet3</x:Name>
<x:WorksheetOptions>
<x:ProtectContents>False</x:ProtectContents>
<x:ProtectObjects>False</x:ProtectObjects>
<x:ProtectScenarios>False</x:ProtectScenarios>
</x:WorksheetOptions>
</x:ExcelWorksheet>
</x:ExcelWorksheets>
<x:WindowHeight>9345</x:WindowHeight>
<x:WindowWidth>11340</x:WindowWidth>
<x:WindowTopX>480</x:WindowTopX>
<x:WindowTopY>60</x:WindowTopY>
<x:ProtectStructure>False</x:ProtectStructure>
<x:ProtectWindows>False</x:ProtectWindows>
</x:ExcelWorkbook>
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="2049"/>
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1"/>
</o:shapelayout></xml><![endif]-->
</head>
<body link=blue vlink=purple>
<table x:str border=0 cellpadding=0 cellspacing=0 width=448 style='border-collapse:
collapse;table-layout:fixed;width:336pt'>
<col width=64 span=7 style='width:48pt'>
<tr height=17 style='height:12.75pt'>
<td height=17 width=64 style='height:12.75pt;width:48pt' align=left
valign=top><!--[if gte vml 1]><v:shapetype id="_x0000_t201" coordsize="21600,21600"
o:spt="201" path="m,l,21600r21600,l21600,xe">
<v:stroke joinstyle="miter"/>
<v:path shadowok="f" o:extrusionok="f" strokeok="f" fillok="f"
o:connecttype="rect"/>
<o:lock v:ext="edit" shapetype="t"/>
</v:shapetype><v:shape id="_x0000_s1025" type="#_x0000_t201" style='position:absolute;
margin-left:22.5pt;margin-top:5.25pt;width:291pt;height:225pt;z-index:1'
fillcolor="window [78]" strokecolor="windowText [77]" o:insetmode="auto">
<v:fill color2="windowText [77]"/>
<o:lock v:ext="edit" rotation="t" text="t"/>
<x:ClientData ObjectType="Chart">
<x:WebChart>
<x:Chart>
<x:Name>Chart 1</x:Name>
<x:Options>
<x:SizeWithWindow/>
</x:Options>
<x:PageSetup>
<x:ChartSize>FullPage</x:ChartSize>
</x:PageSetup>
<x:Font>
<x:FontName>Arial</x:FontName>
<x:Size>10</x:Size>
<x:AutoScale/>
</x:Font>
<x:Left>0</x:Left>
<x:Top>0</x:Top>
<x:Width>5834.99267578125</x:Width>
<x:Height>4514.9853515625</x:Height>
<x:ChartGrowth>
<x:HorzGrowth>1</x:HorzGrowth>
<x:VertGrowth>1</x:VertGrowth>
</x:ChartGrowth>
<x:PlotArea>
<x:Border>
<x:ColorIndex>None</x:ColorIndex>
</x:Border>
<x:Interior>
<x:ColorIndex>None</x:ColorIndex>
</x:Interior>
<x:Font>
<x:FontName>Arial</x:FontName>
<x:Size>10</x:Size>
<x:AutoScale/>
</x:Font>
<x:Graph>
<x:Type>Pie</x:Type>
<x:SubType>Exploded</x:SubType>
<x:VaryColors/>
<x:GapWidth>150</x:GapWidth>
<x:FirstSliceAngle>0</x:FirstSliceAngle>
<x:Series>
<x:Index>0</x:Index>
<x:Name>Series 1</x:Name>
<x:Explode>11</x:Explode>
<x:Value>
<x:DataSource>0</x:DataSource>
<x:Data>Sheet1!$B$2:$E$2</x:Data>
</x:Value>
</x:Series>
<x:PlotVisible/>
</x:Graph>
</x:PlotArea>
<x:Legend>
<x:Delete/>
</x:Legend>
</x:Chart>
</x:WebChart>
</x:ClientData>
</v:shape><![endif]--><![if !vml]><span style='mso-ignore:vglayout;
position:absolute;z-index:1;margin-left:30px;margin-top:7px;width:389px;
height:301px'><![endif]><![if !excel]><img width=389 height=301
src="Book1_files/image001.gif" v:shapes="_x0000_s1025" class=shape v:dpi="96"><![endif]
><![if !vml]></span><![endif]><span
style='mso-ignore:vglayout2'>
<table cellpadding=0 cellspacing=0>
<tr>
<td height=17 width=64 style='height:12.75pt;width:48pt'></td>
</tr>
</table>
</span></td>
<td width=64 style='width:48pt'></td>
<td width=64 style='width:48pt'></td>
<td width=64 style='width:48pt'></td>
<td width=64 style='width:48pt'></td>
<td width=64 style='width:48pt'></td>
<td width=64 style='width:48pt'></td>
</tr>
<tr height=17 style='height:12.75pt'>
<td height=17 style='height:12.75pt'></td>
<td align=right x:num><%=Request.QueryString("val1" )%></td>
<td align=right x:num><%=Request.QueryString("val2" )%></td>
<td align=right x:num><%=Request.QueryString("val3" )%></td>
<td align=right x:num><%=Request.QueryString("val4" )%></td>
<td colspan=2 style='mso-ignore:colspan'></td>
</tr>
<tr height=289 style='height:216.75pt;mso-xlrowspan:17'>
<td height=289 colspan=7 style='height:216.75pt;mso-ignore:colspan'></td>
</tr>
<![if supportMisalignedColumns]>
<tr height=0 style='display:none'>
<td width=64 style='width:48pt'></td>
<td width=64 style='width:48pt'></td>
<td width=64 style='width:48pt'></td>
<td width=64 style='width:48pt'></td>
<td width=64 style='width:48pt'></td>
<td width=64 style='width:48pt'></td>
<td width=64 style='width:48pt'></td>
</tr>
<![endif]>
</table>
</body>
</html>
|
Il faut quelques heures pour se mettre dans le bain Mais c'est carrément super puissant pour faire des états à la volée quand on n'a pas Crystal Report ou autre sous la main
PS: Evidement, ce que je génère est un fichier Excel (au format HTML qui le rend compréhensible)
En aucun cas il est possible de mettre un élément office dans une page HTML (y'a des bidouilles d'invertébré, mais je t'interdit de les utiliser)
Si tu veux que ton pie soit directement dans le HTML, alors il va falloir passer par un composant dédié qui en fait une image à la volée. Tu peux voir un exemple sur ce site :
http://buzz.manga-torii.com
Le composant utilisé pour la version HTML (payant, mais tu trouveras pas mieu) :
http://www.advsofteng.com/
Message édité par Arjuna le 13-07-2004 à 22:26:34