HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Grafikon készítés web lapra


Példaprogram letöltése

10467 bájt

Ha web oldalainkon szükségünk lenne grafikon megjelenítésére, akkor két dolgot tehetünk: vagy leprogramozzuk magunk a grafikonkészítés, megjelenítés problémáját, vagy megkérjük az Excel-t, hogy ugyan készítse már el számunkra a szükséges grafikont, legyen az bármilyen típusú (kör, oszlop, stb.), vagy akár 3D-s megjelenésű. Nos egyszerűbb az utóbbit választani, így megspóroljuk azt a hatalmas munkát, mely ahhoz kellene, hogy saját programunk képes legyen olyan grafikonok létrehozására, mint az Excel. Kapunk tehát az Excel-től egy grafikont, melyet aztán képként megjeleníthetünk web oldalunkon. Mivel az Excel-nek mi adjuk meg az adatokat programból, így bármilyen adatból, bármilyen grafikont készíttethetünk.

Az Excel APS.NET-es alkalmazásból történő eléréséhez módosítsuk az alapértelmezésben a C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\CONFIG könyvtárban lévő machine.config állományban a processModel bejegyzésnél a userName attribútumot system értékre, majd indítsuk újra a gépet.
        <processModel
            ...
            userName="system"
            ...
A mellékelt WebForm1.aspx csak egy képet ad vissza, mely tartalmazza a grafikont. Ha tehát egy web oldalba, vagy egy másik ASP.NET-es alkalmazás web lapjára szeretnénk beilleszteni ezt a képet, akkor a mellékelt _teszt.htm-ben látható módon tegyük ezt meg:
<img src="http://localhost/WebChart/WebForm1.aspx">
Természetesen a WebForm1.aspx elérését változtassuk meg az adott környezettől függően.
Térjünk most át a megvalósítás lépéseire.
Az Excel eléréséhez létrehozunk egy Excel alkalmazást a háttérben, melyben nyitunk egy új munkafüzetet.
      Excel.Application ea = new Excel.Application();    
      ea.Visible = false;      
      Excel.Workbook ew = ea.Workbooks.Add(m);    
Ennek első munkalapjára készítünk egy táblázatot, mely tartalmazza azokat az adatokat, amiből grafikon készül. Az egyszerűség kedvéért most csupán egy kettős ciklus által feltöltött táblázatot használunk, de az adatforrás természetesen tetszőleges lehet.
      Excel.Worksheet ws = (Excel.Worksheet)ea.Worksheets[1];
      for (int l=1; l<=3; l++)
      {
        for (int i=1; i<=6; i++)
        {
          ws.Cells[i, l] = i*l*12;
        }    
      } 
A táblázat „begépelése” után kijelöljük azt.
      ws.get_Range("A1", "C6").Select();
Ezt követően létrehozunk egy grafikont, melynek megadjuk típusát, amit most xl3DColumn-ra választottunk.
      Excel.Chart c = (Excel.Chart)ew.Charts.Add(m, m, m, m);
      c.ChartType = Excel.XlChartType.xl3DColumn;
Következő lépésben a már elkészült grafikon képét a vágólapra másoljuk és bezárjuk a munkafüzetet, majd az Excel-t is úgy, hogy ne történjen mentés.
      c.CopyPicture(Excel.XlPictureAppearance.xlScreen, Excel.XlCopyPictureFormat.xlBitmap, Excel.XlPictureAppearance.xlScreen);
      ew.Close(false, m, m);
      ea.Quit();
Adott tehát a vágólapon egy kép, mely azt a grafikont tartalmazza, amit a web oldalon meg szeretnénk jeleníteni. Ehhez nincs más dolgunk, mint a vágólapon lévő képet egy Bitmap osztályba másolni.
      IDataObject ido = Clipboard.GetDataObject(); 
      if (ido.GetDataPresent(DataFormats.Bitmap)) 
      {
        Bitmap bmp = (Bitmap)ido.GetData(DataFormats.Bitmap); 
Az alkalmazásunk által visszaadott adathalmaz most nem egy szöveges HTML kód lesz, hanem egy kép, mely ráadásul GIF típusú lesz. Ezért a formátumot image/gif típusúra állítjuk.
        Response.ContentType = "image/gif";
Végső lépésként pedig mentjük a Bitmap-en tárolt képet a webes kérést kiszolgáló adatfolyamba.
        bmp.Save(Response.OutputStream, ImageFormat.Gif);
      }
Ezzel a kérést küldő kap egy GIF típusú képet, melyen az Excel által létrehozott grafikon lesz látható.

Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2002 évkönyv 373. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |