2010-08-24 22 views
10

Busco cualquier gratuitas clases disponibles de Excel "ayudantes" que se escriben para .NET (no tiene que ser C#). me gustaría para evaluar lo que otros consideran que es útil y estática genérica (y no estáticos) métodos de ayuda. Puede dirigirse a VSTO o a la automatización de Office normal, aunque eso probablemente no importe.¿Qué sucede si existen enlaces para liberar librerías de clases de "ayuda" de Excel para C#?

Supongo que también debo señalar que esta pregunta NO es para "qué son buenas alternativas (o alternativas gratuitas) para usar la automatización del modelo de objetos de Excel. Realmente no quiero enlaces al equipo SS, etc., aunque son todos excelentes productos que no son el propósito de la pregunta.

En caso de que no fuera lo suficientemente claro en el párrafo anterior: no quiero respuestas que indiquen: use este componente de terceros gratuito (o no), en lugar de código de modelo de objeto de Excel

Así que, básicamente, lo que estaba pidiendo era bibliotecas de código C# desarrolladas por el usuario que contengan VSTO, Office o funciones auxiliares de Excel, como métodos estáticos para trabajar con menús, cintas , Oscila, libros, documentos, XML (como otaku mencionan los) ...

+1

he tenido que hacer frente a algunos proyectos de Excel 2003, y terminó la escritura y el uso regular de estos clases para manejar los menús: http://www.clear-lines.com/blog/post/Excel-VSTO-add-in-menu-manager.aspx Esto es un poco un problema marginal, no estoy seguro de que valga la pena respuesta separada! – Mathias

Respuesta

4

En términos de automatización de Office para Excel, hay algunos buenos cmdlets PowerShell Open XML que se pueden usar para PS o portar a C# en Announcing the Release of PowerTools for Open XML V1.1. El blog de Eric White, donde se encuentra este enlace, recientemente realizó un análisis más profundo de la automatización de Excel utilizando Open XML, como Table Markup in Open XML SpreadsheetML. Aviso sobre Open XML - aunque es el método preferido por muchos, que en realidad no tiene que utilizar el SDK de Open XML - que sólo puede utilizar System.IO.Packaging para obtener acceso a archivos Excel 2007/2010.

Además, a menudo se pasa por alto, pero los fragmentos de Excel disponibles para VSTO, Open XML y el desarrollo de interoperabilidad son grandes. 1, 2, 3

Además, consulte las muestras de Excel para VB @http://msdn.microsoft.com/en-us/library/8x19fbw1(v=VS.90).aspx. Estos vienen instalados con VS cuando también eliges VB como idioma durante la instalación.

Actualización: Acabo de descubrir el All-In-One Code Framework (Office) que tiene una gran cantidad de excelentes clases de ayuda de Excel. Puede encontrarlo en: http://1code.codeplex.com/releases/view/51868.

+0

esta es probablemente la mejor respuesta hasta la fecha. El marco All-in-one es interesante y tiene una implementación muy buena de los patrones de limpieza de interoperabilidad COM. def. vale la pena echarle un vistazo. –

2

Para proyectos de VSTO:

http://www.add-in-express.com/

no VSTO, no de automatización:

http://www.html-to-pdf.net/excel-library.aspx

Nota: ninguna de estas bibliotecas son libres.

+0

si bien ambas son geniales bibliotecas, la pregunta era sobre las bibliotecas de excel helper en lugar de los componentes estandarizados de terceros que utilizan sus propios modelos de objetos/API. He editado mi pregunta para que quede más clara. –

3

Herramientas de VSTO la energía son un buen conjunto de utilidades para trabajar con Excel:
http://msdn.microsoft.com/en-us/magazine/dd263100.aspx

+0

Sí, estas son herramientas geniales y esenciales, las uso constantemente. Sin embargo, estaba buscando más bibliotecas de ayuda en lugar de herramientas de desarrollador para el IDE. Aunque en la reflexión, los espacios de nombres de extensiones proporcionan algunos métodos de extensión muy útiles. que son superiores a tirar el tuyo. –

3

ExcelDNA es un proyecto muy fresco. Proporciona una forma ligera de consumir código .NET de Excel, con un modelo de implementación que es mucho más fácil que VSTO. Me pareció una alternativa interesante a VSTO si quieres escribir UDF en .NET, por ejemplo.

+0

sí, ese es un buen punto. Voy a editar la pregunta ya que tenía más la intención de que esta pregunta sea sobre lo que las librerías han escrito para el trabajo de desarrollo de VSTO en lugar de qué alternativas y alternativas de biblioteca existen. –

2

Hay uno llamado FileHelpers que le permite guardar datos de Excel como CSV y la biblioteca FileHelpers puede analizar fácilmente la información y así sucesivamente, seguro que puede no ser completamente automatizada de Excel, pero es un buen avance para el análisis.Si está hablando de poder manejar Excel de forma binaria nativa, este article de CodeProject podría ser útil, también aquí, es BIFF parser que comprende el almacenamiento de datos de Excel subyacente, y también here en CodeProject.

+0

gracias esta es una buena respuesta. –

+0

no es automatización. –

+0

Sergey muy cierto, sin embargo, debido a dos escenarios importantes de la necesidad de acelerar el acceso de lectura/escritura de archivos de Excel, y en ocasiones eliminar bibliotecas de tipo/dependencias de PIA, esta es una respuesta útil. –

2

Con la escritura dinámica de las palabras clave de .NET 4.0 La automatización de Excel fácil como el infierno.
Si desea intellisense puede escribir fácilmente C# wrapper sobre las llamadas dinámicas.

ACTUALIZACIÓN
Estamos trabajando con la automatización de Excel desde 2001 (el desarrollo de complementos financieros) .Desde Excel 2000 hasta 2010.

Y todos sabemos que la interoperabilidad estándar simplemente no funciona cuando el código debe trabajar con todos versiones y service packs de Office.

Nos hemos vencido muchas veces con las bibliotecas de interoperabilidad personalizadas, las versiones de VSTO, etc. Después de un año encontramos una única solución que funciona: llamar a todas las automatizaciones mediante llamadas en espera tardías (reflejo). es decir ('' código del Bloc de notas '') Type.GetTypeFromProgId('Excel.Application').GetMethod('Visible').Invoke(....).

Pero el código era muy grande y feo, entonces simplemente envolvemos ese código feo con el Modelo de Objetos copiado de Excel 1: 1. Cuando necesitamos un nuevo método, lo agregamos a nuestro modelo de Objetos de Excel y llamamos a la automatización de Excel a través de una llamada en espera tardía.

Con la nueva palabra clave dinámica, es posible vivir sin envoltorio, especialmente con el soporte dinámico de Resharper.

+0

la pregunta era sobre las bibliotecas que las personas han escrito para la automatización de Excel, y no sobre las funciones de idioma disponibles en .NET 4 para trabajar con la automatización de Excel. ¿Tiene algún ejemplo de usar .net 4? –

+0

@Anonymous Type ver actualización. –

+0

muy bueno. Buen trabajo, Sergey, puedo ver por qué eres tan fanático de .NET 4.0 –

2

prefiero éste:

Excel Package on CodePlex

utiliza el Open XML, así que no hay necesidad de una oficina instalar en el ordenador (puede o no tener en cuenta), pero he encontrado que es muy fácil usar y configurar

Cuestiones relacionadas