2008-11-19 59 views
21

Estoy trabajando en una aplicación ASP.NET MVC donde necesito exportar datos a una hoja de cálculo de Excel. Anteriormente, en las aplicaciones de formularios web, utilicé un código que encontré para representar un GridView como un archivo compatible con Excel. Esto fue bastante útil. Me preguntaba cuál sería el método más rápido/más efectivo para hacer esto en MVC. Gracias.Exportar a Excel en Asp.net MVC

Respuesta

11

Una opción simple sería crear una vista para representar una versión XML de un archivo de Excel. Puede usar la nueva versión de Office 2007 o la versión anterior de 2003. Elegimos la versión 2003 para que más personas pudieran usarla, pero eso depende de usted, por supuesto.

XML 2003 ref on MSDN

XML 2007 ref on MSDN

+0

he utilizado la misma estrategia para hacer que los canales RSS, etc. funciona muy bien. – GalacticCowboy

+0

Lo estamos utilizando ahora en varios lugares: el proyecto web crea una plantilla para el usuario final para que podamos volver a importar ese archivo sabiendo que el formato es correcto. ¡El formato XML es genial! – sgwill

20

Aquí está una entrada de blog de Stephen Walther titulado ASP.NET MVC Tip #2 - Create a custom Action Result that returns Microsoft Excel Documents

+3

Esto usa el viejo truco de escribir un documento HTML (básicamente una tabla) con un tipo de mimo de Excel. Esto es diferente a la transmisión de un archivo Excel nativo. Dicho esto, esta es una buena forma de hacerlo para la mayoría de las aplicaciones, ya que Excel maneja el formato HTML bastante bien. –

+0

Es bastante fácil cambiar esto a la representación como CSV si no necesita ningún formato elegante. Solo recuerde hacer una cita doble de todos los campos si existe la posibilidad de que aparezcan comas. –

+1

Intenté seguir con la primera opción, con la esperanza de que el enfoque XML fuera más limpio o aprendiera algo, pero no pude encontrar un tutorial completo al respecto. Pasé unas horas jugando con eso, y luego pasé menos de una hora tomando este enfoque, que era más limpio de lo que esperaba. –

Cuestiones relacionadas