Enviar datos a Excel

04/06/2006 - 18:23 por Antonio | Informe spam
Hola grupo,
Tengo una curiosidad, se que existe VSTO2005, se que esta herramienta te
proporciona componentes para comunicarte con las diversas aplicaciones de
Office, ¿pero ahi alguna otra forma de enviar o recivir datos de office sin
tener que comprar esta herramienta?.

Yo la verdad que estoy interesado en poder enviar datos a una hoja de
excel.

¡Ha! y uso Office xp, supongo que dentro de poco me actualizare al
office 2003 pero no es seguro.
 

Leer las respuestas

#1 Luis Miguel Blanco
06/06/2006 - 14:43 | Informe spam
Hola Antonio

Prueba a añadir a tu proyecto c# una referencia a la librería "Microsoft
Excel xx Object Library", donde xx es el número de versión que tienes
instalado en la máquina. Ten presente que en la ventana de agregar referencia
debes situarte en la pestaña "COM" para seleccionar este componente.

A continuación declara mediante la instrucción using el espacio de nombres
de Excel, y podrías crear un DataSet con información de una tabla que puedes
volcar a una hoja Excel usando los objetos de este espacio de nombres. Te
acompaño un ejemplo muy sencillo, pero que espero te sirva para adaptarlo a
tu caso:

//--
using System.Data.SqlClient;
using Excel;
//

private void button1_Click(object sender, System.EventArgs e)
{
SqlConnection oConexion = new SqlConnection();
oConexion.ConnectionString = "Integrated Security=SSPI;Persist Security
Info=False;" +
"Data Source=localhost;Initial Catalog=Northwind";

SqlCommand oComando = new SqlCommand();
oComando.Connection = oConexion;
oComando.CommandType = CommandType.Text;
oComando.CommandText = "SELECT EmployeeID, (FirstName + ' ' + LastName) AS
Nombre FROM Employees";

SqlDataAdapter oAdaptador = new SqlDataAdapter();
oAdaptador.SelectCommand = oComando;

DataSet oDataSet = new DataSet();
oConexion.Open();
oAdaptador.Fill(oDataSet, "Employees");
oConexion.Close();

Excel.Application oExcel = new Excel.Application();
oExcel.Visible = true;
oExcel.WindowState = Excel.XlWindowState.xlNormal;
Excel.Workbooks oWBooks = (Excel.Workbooks)oExcel.Workbooks;
Excel._Workbook oWBook =
(Excel._Workbook)(oWBooks.Add(XlWBATemplate.xlWBATWorksheet));

Excel.Sheets oSheets = (Excel.Sheets)oWBook.Worksheets;
Excel._Worksheet oWSheet = (Excel._Worksheet)(oSheets.get_Item(1));

int nContador = 0;
foreach (DataRow oRow in oDataSet.Tables["Employees"].Rows)
{
nContador++;
Excel.Range oRange = oWSheet.get_Range("A" + nContador, "A" + nContador);
oRange.Value2 = oRow["Nombre"];
}
}
//--

Espero que te sea de utilidad

Un saludo
Luis Miguel Blanco
http://www.dotnetmania.com


"Antonio" wrote:

Hola grupo,
Tengo una curiosidad, se que existe VSTO2005, se que esta herramienta te
proporciona componentes para comunicarte con las diversas aplicaciones de
Office, ¿pero ahi alguna otra forma de enviar o recivir datos de office sin
tener que comprar esta herramienta?.

Yo la verdad que estoy interesado en poder enviar datos a una hoja de
excel.

¡Ha! y uso Office xp, supongo que dentro de poco me actualizare al
office 2003 pero no es seguro.



Preguntas similares