2012-03-16 13 views
6

Me gustaría poder permitir que un usuario ingrese una fórmula personalizada en una celda de Excel que se suscribirá a los datos proporcionados por una aplicación .NET externa. Por ejemplo, el usuario podría introducir ...¿Cuál es la tecnología adecuada para extraer datos en la hoja de cálculo de Excel a través de una fórmula de una fuente .NET?

=getCurrentValue("ABC") 

Hay un .NET externa (C#) aplicación que está determinando el valor de "ABC" cada minuto.

La célula debe mostrar el valor inicial de "ABC" de la aplicación externa y la actualización cuando la aplicación externa envía un nuevo valor.

En el pasado creo que la aplicación externa sería un servidor DDE y la fórmula sería una fórmula de cliente DDE DDE, pero es aparentemente muerto. ¿Cuál es la tecnología "correcta" para usar para hacer esto?

Tenga en cuenta que la hoja de cálculo tiene que tirar de los datos a través de una fórmula. La información no va a un archivo de Excel de plantilla fija, sino a cualquier hoja de cálculo en la que el usuario ingrese una fórmula.

Gracias,

John

+0

Fwiw, pensé que la pregunta era muy clara Aske d, y descubrió que el extraordinario alto nivel de irrelevancia presente en las respuestas no aceptadas era completamente alucinante. – BrainSlugs83

Respuesta

5

Excel IDT (datos en tiempo real) es el equivalente de DDE. Le permite enviar valores a una celda siempre que haya actualizaciones disponibles. Si el proceso que proporciona las actualizaciones es una aplicación externa, la configuración de un canal WCF entre el servidor RTD y la aplicación externa debería permitirle suministrar actualizaciones en tiempo real a Excel.

Éstos son algunos enlaces:

+0

Hay más de sus artículos, consulte la lista en http://weblogs.asp.net/kennykerr/pages/My-Articles.aspx – quetzalcoatl

-1

Puede comunicarse con hojas de Excel través de la API de Excel:

new Microsoft.Office.Interop.Excel.Application();

+0

Aunque podría considerar archivos CSV. La mayoría de los proveedores de hosting no permitirán Office en su servidor para que pueda escribir en un archivo CSV. Aunque se puede hacer mucho más con Microsoft.Office.Interop.Excel, incluso se puede crear área de impresión de gráficos y – ydd1987

+1

La interoperabilidad de Excel parece estar dirigida a la automatización de tareas de Excel o enviando datos a Excel. Puede desencadenar una solicitud DDE en Excel, por ejemplo. He ajustado la pregunta para reflejar que queremos que Excel obtenga los datos (aunque las actualizaciones se retrasarán una vez que Excel se suscriba). DDE sería perfecto, pero parece que ya no se recomienda. ¿Hay algún mecanismo para registrar una fórmula/devolución de llamada/algo a través de interoperabilidad? Si es así, ¿podrías señalarme un ejemplo? –

+0

Algo como esto? oRng = oSheet.get_Range ("C2", "C6"); oRng.Formula = "= A2 & \" \" & B2"; – ydd1987

Cuestiones relacionadas