Una classe per creare un foglio Excel (servono le seguenti dll:Interop.Excel,Interop.Microsoft.Office.Core,Interop.VBIDE)
class CreaExcel
{
private Excel.Application ExceApp = null;
private Excel.Workbook workbook = null;
private Excel.Worksheet worksheet = null;
private Excel.Range workSheet_range = null;
public CreaExcel() { }
///
/// Apre un nuovo documento in excel senza renderlo visibile
///
public void Open()
{
try
{
ExceApp = new Excel.Application();
ExceApp.Visible = false;
workbook = ExceApp.Workbooks.Add(1);
worksheet = (Excel.Worksheet)workbook.Sheets[1];
}
catch (Exception e)
{
Console.Write("Error");
}
}
///
/// Fa il dispose dell'oggettto ExceApp
///
public void Close()
{
try
{
//ExceApp.Application.Quit();
ExceApp.Application.Save("C:\\app.xls");
ExceApp = null;
workbook = null;
workSheet_range = null;
}
catch (Exception e)
{
Console.Write("Error");
}
}
///
/// Imposta se l'applicazione aperta è visibile o no
///
public bool Visibile
{
get
{
return ExceApp.Visible;
}
set
{
ExceApp.Visible = value;
}
}
///
/// Riempie una cella con uno stile specifico
///
/// numero della riga
/// numero della colonna
/// testo da scrivere
/// Classe che determina il nimero di righe e colonne da unire (la riga 0 non è valida)
/// colore di sfondo
/// Font
/// dimensione della colonna (0 = default)
/// dimensione della colonna (0 = default)
/// Colore del testo
public void CreaCella(int numrRiga, int numColonna, string testo, Range range, System.Drawing.Color colore, System.Drawing.Font font, int columnSize, int rowSize, System.Drawing.Color ForeColor,BorderStyle bordo,System.Drawing.Color coloreBordo)
{
worksheet.Cells[numrRiga, numColonna] = testo;
CalcolaRange(numrRiga, numColonna, range);
workSheet_range.Interior.Color = colore.ToArgb();
workSheet_range.Borders.Color = coloreBordo.ToArgb();
workSheet_range.Font.Name = font.FontFamily.Name;
if (columnSize != 0)
workSheet_range.ColumnWidth = columnSize;
if (rowSize != 0)
workSheet_range.RowHeight = rowSize;
workSheet_range.Font.Color = ForeColor.ToArgb();
workSheet_range.Borders.LineStyle = bordo;
}
private void CalcolaRange(int numRiga, int numColonna, Range range)
{
string nomeColonna = ((char)(numColonna + 64)).ToString();
workSheet_range = worksheet.get_Range(range.ColonnaPartenza + range.RighaPartenza.ToString(), range.ColonnaFine + range.RighaFine.ToString());
workSheet_range.MergeCells = 1;
}
}
public class Range
{
int rigaPartenza;
int rigaFine;
string colonnaPartenza;
string colonnaFine;
public Range(int rowPartenza, int rowFine, string columnsPartenza,string columnsFine)
{
rigaPartenza = rowPartenza;
rigaFine = rowFine;
colonnaPartenza = columnsPartenza.ToUpper();
colonnaFine = columnsFine.ToUpper();
}
public int RighaPartenza
{
get { return rigaPartenza; }
set { rigaPartenza = value; }
}
public int RighaFine
{
get { return rigaFine; }
set { rigaFine = value; }
}
public string ColonnaPartenza
{
get { return colonnaPartenza; }
set { colonnaPartenza = value; }
}
public string ColonnaFine
{
get { return colonnaFine; }
set { colonnaFine = value; }
}
}
public enum BorderStyle
{
NessunBordo = 0,
LineaSottile = 1,
tratteggioSottile = 2,
tratteggioSottile1 = 3,
tratteggioSottilePuntoLinea = 4,
tratteggioSottilePuntoPuntoLinea = 5,
tratteggioGrossoPuntoLineaInclinato = 6,
lineaGrossa = 7,
tratteggioGrosso = 8,
doppiaLinea = 9,
tratteggioGrossoPuntoLinea = 10,
tratteggioGrossoPuntoPuntoLinea = 11,
}
giovedì 6 maggio 2010
Creazione di un file Excel
Pubblicato da
mhithran
alle
03:52
Etichette: Programmazione C#
Iscriviti a:
Commenti sul post (Atom)
Nessun commento:
Posta un commento