Intentando controlar puerto COM con Excel

Iniciado por Meta, 10 Noviembre 2009, 02:37 AM

0 Miembros y 1 Visitante están viendo este tema.

Meta

Hola:



Quiero lograr comunicar mediante el Excel 2007 (o con Calc del openOffece gratuito) recibir o enviar tramas de byte al puerto serie. Enviar tramas de byte puede ser un mensaje de texto, también al recibir.

He investigado por ahí en www.google.com que directamente no se puede hacer al puerto serie. Pero me he informado que con Visual Studio .net 2008/2010 se puede crear un plugins, Add-on o como se llame bajo para el Excel.

1- ¿Se puede programar con cualquier lenguaje Visual Basic .net o Visual C# para hacer un plugins para Office Excel 2007? Sólo tiene que controlar el puerto serie, esa es la programación que quiero saber si es posible hacerlo en realidad.

2- ¿Cómo se programa o dónde hay buenos tutoriales básicos para programar un plugins sobre el puerto serie con C# o VB .net 2008? El tutorial es básico como empezar a aprender hacer tu primer plugins al Excel, cómo usarlo una vez acabado y como activarlo cuando se lo pases a un amigo y lo pruebe sin tener Visual Studio instaldo.

He hecho un programa sobre controlar el puerto serie bajo C# (gracias a este foro) con su manual correspondiente.




using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;

namespace PicRS232
{
   public partial class Form1_Principal : Form
   {
       public Form1_Principal()
       {
           InitializeComponent();
           // Abrir puerto mientra se ejecute la aplicación
           if (!serialPort1.IsOpen)
           {
               try
               {
                   serialPort1.Open();
               }
               catch (System.Exception ex)
               {
                   MessageBox.Show(ex.ToString());
               }
           }
       }

       private void button_t_Click(object sender, EventArgs e)
       {
           byte[] mBuffer = new byte[1];
           mBuffer[0] = 0x74; //ASCII letra "t".
           serialPort1.Write(mBuffer, 0, mBuffer.Length);
       }

       private void button_b_Click(object sender, EventArgs e)
       {
           byte[] miBuffer = new byte[1];
           miBuffer[0] = 0x62; //ASCII letra "b".
           serialPort1.Write(miBuffer, 0, miBuffer.Length);
       }

       private void button_a_Click(object sender, EventArgs e)
       {
           byte[] mBuffer = new byte[1];
           mBuffer[0] = 0x61; //ASCII letra "a".
           serialPort1.Write(mBuffer, 0, mBuffer.Length);
       }

       private void button_l_Click(object sender, EventArgs e)
       {
           byte[] mBuffer = new byte[1];
           mBuffer[0] = 0x6C; //ASCII letra "l".
           serialPort1.Write(mBuffer, 0, mBuffer.Length);
       }

       private void button_Espacio_Click(object sender, EventArgs e)
       {
           byte[] mBuffer = new byte[1];
           mBuffer[0] = 0x20; //ASCII letra "Espacio".
           serialPort1.Write(mBuffer, 0, mBuffer.Length);
       }
   }
}

Ver manual en pdf. (22 MB)

Os dejo esto de momento por si hay personas que sepan información sobre este tema como enlaces a otras web, etc.

Por otro lado intentaré aprenderhacer cualquier plugins para Excel para luego pasar el código de arriba al formulario. A ver si hay suerte.

Un coridal saludo.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

MANULOMM

consulta sobre VSTO, pero dudo que puedas hacer eso con excel, pues por ser un entorno diferente corres sobre un appdomain aparte con ciertas restricciones... ademas para que quieres hacerlo con excel? que quieres hacer adicional? si lo quieres con open office no podras utilizar vsto pues open office tiene una api diferente mira api.openoffice.org.

Atentamente,

Juan Manuel Lombana
Medellín - Colombia


Meta

Puse la imagen de openOffice pero en realidad lo prefiero Excel 2007/2010.  Me he informado mejor. Se puede hacer añadiendo un Add-ins, complementos a parte programándolo con Visual C++/Visual Basic .net o Visual C#.

Otra consulta.

¿Sólo tiene que ser el VSTO? ¿Los otros Visual Studio no sirben? Al menos se que el Express no, pero los otros de pago como el profesional.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

MANULOMM

haber te digo, el VSTO es como un framework que te permite controlar el Excel (Office en realidad.), cundo instalas el VSTO (3 para 2007) es cuando puedes hacer los famosos add-ins y otros complementos. no se con respecto a las versiones express como se comporte yo lo he trabajado con versones Professional y Team System.

Atentamente,

Juan Manuel Lombana
Medellín - Colombia