Archive for the ‘Programare’ Category

Crearea unui fisier Excel folosind Visual Studio Tools for Office 2005 SE

Tuesday, September 4th, 2007

    Pachetul Bio organic a fost adus in sprijinul programatorilor pentru deschiderea orizontului de transmisii de date intre aplicatii. Putem astfel sa ne salvam datele intr-un fisier Word, sau sa ne exportam baza de date curenta intr-un fisier Excel spre exemplu.

 

    Totul suna bine si frumos pana cand incerci sa folosesti aceste component-uri. Vei afla ca documentatia “este sublima, dar lipseste cu desavarsire”. Nici macar functiile create in aceste dll-uri nu au nimic ce tine de documentatie pentru a ajuta Intellisense-ul. Deci, domnule Shneerson, multumesc!

 

    In orice caz, voi incerca sa prezint o modalitate simpla de utilizare a catorva functii date de VSTO 2005 SE pentru Excel.

 

  1. //Referintele.
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Text;
  5. using System.IO;
  6. using SD = System.Drawing;
  7. using Microsoft.Office;
  8. using Microsoft.Office.Core;
  9. using ME = Microsoft.Office.Interop.Excel;
  10.  
  11. namespace CreateExcel12File
  12. {
  13. public class Program
  14. {
  15. static void Main(string[] args)
  16. {
  17. //Majoritatea functiilor implementate aici sunt de dragul exemplului, astfel multi parametri vor lua forma Type.Missing. Insa experimentati cu fiecare, aflati potenta fiecarui paramentru.
  18. object missing = Type.Missing;
  19.  
  20. //Interfata ce ne permite lucrul direct cu Excel.
  21. ME.Application excel = new ME.Application();
  22.  
  23. try
  24. {
  25. //Introducerea unui nou workbook in Excel.
  26. ME.Workbook wBook = excel.Workbooks.Add(missing);
  27.  
  28. //Modificarea worksheet-ului curent in workbook-ul curent.
  29. ME.Worksheet wSheet = (ME.Worksheet)wBook.ActiveSheet;
  30.  
  31. wSheet.Name = "1st WorkSheet";
  32. //Setarea imaginii de fundal. Inlocuiti imaginea cu una existenta.
  33. //wSheet.SetBackgroundPicture(Directory.GetCurrentDirectory() + "\\excel.gif");
  34.  
  35. //Introducerea unor date in punctele respective.
  36. for (int i = 1; i <= 10; i++)
  37. for (int j = 1; j <= 10; j++)
  38. {
  39. wSheet.Cells[i, j] = i + " " + j + "something";
  40. //Modificarea lungimii fiecarei celule din coloana curenta pentru a se vedea tot scrisul introdus anterior.
  41. wSheet.Cells.EntireColumn.AutoFit();
  42. }
  43.  
  44. //Salvarea sub format *xlsx
  45. excel.ActiveWorkbook.SaveAs(Directory.GetCurrentDirectory() + "\\excelFile", ME.XlFileFormat.xlWorkbookDefault, missing, missing, missing, missing, ME.XlSaveAsAccessMode.xlNoChange, missing, missing, missing, missing, missing);
  46. }
  47. finally
  48. {
  49. //Iesirea si totodata asigurarea eliberarii memoriei.
  50. excel.Quit();
  51. }
  52. }
  53. }
  54. }