net mvc asp and c# .net excel export interop

mvc - export datatable to excel c# windows forms



Interoperabilidad de C#Excel: suprima el cuadro de diĆ”logo "PublicaciĆ³n" al invocar Worksheet.ExportAsFixedFormat (4)

Estoy utilizando Excel Interop para abrir un archivo xlsx y guardarlo como un documento pdf. Al invocar el método ''ExportAsFixedFileFormat'', se muestra un diálogo titulado "Publicación" para indicar el progreso. ¿Cómo puedo suprimir u ocultar este diálogo? He visto algunas preguntas similares en otros foros sin una solución satisfactoria, pero espero que alguien haya resuelto esto desde entonces.

Código:

Application application = new Application(); application.DisplayAlerts = false; // <- No effect application.Visible = false; // <- No effect application.ScreenUpdating = false; // <- No effect application.UserControl = false; // <- No effect application.Workbooks.Open(path, Type.Missing, true); application.DisplayDocumentActionTaskPane = false; // <- No effect application.Worksheets[1].ExportAsFixedFormat(XlFixedFormatType.xlTypePDF, path);


¿Qué hay de procesarlo en un BackgroundWorker . Esto no COMEXCEPTION . Probé este código en un clic de botón y funciona sin mostrar el progress dialog .

var worker = new BackgroundWorker(); worker.DoWork += (o, args) => { var path = @"D:/sample.xlsx"; var application = new Microsoft.Office.Interop.Excel.Application(); application.Workbooks.Open(path, Type.Missing, true); application.Worksheets[1].ExportAsFixedFormat(XlFixedFormatType.xlTypePDF, path); }; worker.RunWorkerAsync();


Por mucho, la mejor API para manejar (crear, leer, exportar a PDF / html, etc ...) Los archivos XLS / XLSX que conozco son FlexCel. Es realmente simple, increíblemente rápido y completo escrito en C #. No requiere instalación de Excel.

Lo encontrará aquí: http://www.tmssoftware.com/site/flexcelnet.asp (obtenga la versión de prueba con muchos ejemplos con código fuente)

Si tiene presupuesto en su proyecto para adquirir la licencia, realmente lo recomiendo.


Puede usar la biblioteca pedamorf, pedamorf es un servidor que convierte documentos, imágenes, urls, html y texto a PDF. Se basa en gran medida en los excelentes programas de código abierto wkhtml2pdf, Libre Office y iTextSharp. Se proporciona una biblioteca cliente y se puede utilizar desde una aplicación .NET para utilizar los servicios de conversión proporcionados por pedamorf.

Más información está here


Quizás no esté respondiendo a tu pregunta, pero intentaré ser útil. Que yo sepa, no se recomienda usar Excel Interop en el procesamiento de back-end. Encontraste uno de sus problemas, pero hay algunos otros. Existen alternativas de terceros para interactuar con formatos de Excel, algunos de ellos son de código abierto y otros son comerciales. Recomiendo encarecidamente echar un vistazo a uno de ellos: ClosedXML y NPOI . Ambos son de código abierto y gratuitos.