lunes, 9 de febrero de 2009

Reportes en Excel en C#

Hola amigos
en este codigo lo que hace es cojer un archivo de excel abrirlo y llenar los datos que necesito como mi reporte. Para esto utilizo 3 dll que son:

-Interop.Microsoft.Office.Core.dll
-Microsoft.Office.Interop.Excel.dll
-Microsoft.Vbe.Interop.dll

con estas 3 dll son con las que e realizado la aplicacion

y el codigo completo es el siguiente:
----------------------------------------------------------------------------------

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Office = Microsoft.Office.Core;
using Excel = Microsoft.Office.Interop.Excel;
namespace excel
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private static object vk_missing = System.Reflection.Missing.Value;
private static object vk_visible = true;
private static object vk_false = false;
private static object vk_true = true;
#region OPEN WORKBOOK VARIABLES
private object vk_update_links = 0;
private object vk_read_only = vk_true;
private object vk_format = 1;
private object vk_password = vk_missing;
private object vk_write_res_password = vk_missing;
private object vk_ignore_read_only_recommend = vk_true;
private object vk_origin = vk_missing;
private object vk_delimiter = vk_missing;
private object vk_editable = vk_false;
private object vk_notify = vk_false;
private object vk_converter = vk_missing;
private object vk_add_to_mru = vk_false;
private object vk_local = vk_false;
private object vk_corrupt_load = vk_false;
#endregion
private void button1_Click(object sender, EventArgs e)
{
String ruta = Application.StartupPath + @"\rptalumnototal.xls";
Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook excelBook = excelApp.Workbooks.Open(ruta, vk_update_links, vk_read_only, vk_format, vk_password,
vk_write_res_password, vk_ignore_read_only_recommend, vk_origin,
vk_delimiter, vk_editable, vk_notify, vk_converter, vk_add_to_mru,
vk_local, vk_corrupt_load);
Microsoft.Office.Interop.Excel.Worksheet excelWorksheet = (Microsoft.Office.Interop.Excel.Worksheet)excelBook.Worksheets.get_Item(1);
excelApp.Visible = true;
excelWorksheet.Cells[8,"C"] = "Dato 1";
excelWorksheet.Cells[9, "C"] = "Dato 2";
Excel.Range rango = excelWorksheet.get_Range(excelWorksheet.Cells[8, "C"], excelWorksheet.Cells[9, "C"]);
rango.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
rango.Font.Bold = true;
rango.Borders.LineStyle = Excel.XlLineStyle.xlContinuous;
}
}
}
----------------------------------------------------------------------------------
el rptalumnototal.xls es el nombre de mi archivo que estoy usando como plantilla para mi reporte claro que se puede hacer se crea uno nuevo solo que en esta ocacion la e utilizado asi

Tambien en el codigo se encuentra dar al centro a los datos y darle el borde a las celdas donde estan los datos que le e agreago como para que se vea mucho mejor el Reporte :D. Preguntas a mi correo ppe_16@hotmail.com

Muchas gracias hasta otra oportunidad bye

Saludos
Victor Altamirano Vasquez

7 comentarios:

Unknown dijo...

Grandiosa su explicacion, con algunas modificaciones para mio codigo fue barbaro tu ejemplo, gracias.

Leo
PD:Lo que no puedo hacer es cambiar de una celda activa a otra celda. El libro se abre en "A1" como celda activa y quiero cambiar a la celda "B1" y establecerla com activa?

Victor Altamirano Vasquez dijo...

hola Ariana
que bueno que te aya agradado :D

lo de la celdas me podrias explicar mejor :D

gracias

Unknown dijo...

te pasastes men tu codigo esta genial, estuve buscando x dias de como escribir en una plantilla excel y me parecio interesante y lo probe y resulto xvr te pasaste pepe !!!!!!! ya lo probe y funciona, ahh y gracias eh por el aporte... exitosssss

acumulador dijo...

Perdon por la ignorancia pero me preguntaba si me podes explicar como hago para agregar las dll que mencionas, gracias de verad por tu ayuda.

Victor Altamirano Vasquez dijo...

Hola acumulador

bueno la forma de agregar las dll al proyecto lo puedes hacer en "Agregar una referencia" eso puedes hacerlo cuando seleccionas el proyecto y le das click derecho y ahi sale Agregar referencia y buscas las dll que deseas agregar

Saludos

Anónimo dijo...

Hola,

gracias por el aporte pero tengo un problema, es que cuando pongo agregar referencia, los dlls que nombras no me aparecen ni en .net, com.Cual es la manera para que me aparezcan Muchas gracias

Anónimo dijo...

me marca un error en aplication de las primeras filas me lo podras explicar please!!!