¿Alguien tiene alguna idea de cómo imprimir un archivo Excel programáticamente usando C# y Excel Interop? Si es así, ¿puedes proporcionar el código?Imprimir Excel usando Interop
Respuesta
Para imprimir, puede utilizar el método Worksheet.PrintOut(). Puede omitir uno o todos los argumentos opcionales pasando Type.Missing. Si los omite a todos, se imprimirá una copia por defecto de su impresora activa. Pero puede utilizar los argumentos para establecer el número de copias para imprimir, intercalar, etc. Consulte la ayuda en el método Worksheet.PrintOut() para obtener más información.
El ejemplo que se muestran en el archivo de ayuda es:
private void PrintToFile()
{
// Make sure the worksheet has some data before printing.
this.Range["A1", missing].Value2 = "123";
this.PrintOut(1, 2, 1, false, missing, true, false, missing);
}
Pero a menos que necesite cambiar la configuración predeterminada, sólo tiene que pasar en Type.Missing para todos los argumentos. He aquí un ejemplo utilizando la automatización para abrir un libro de Excel, imprimir la primera página y, a continuación, apague:
void PrintMyExcelFile()
{
Excel.Application excelApp = new Excel.Application();
// Open the Workbook:
Excel.Workbook wb = excelApp.Workbooks.Open(
@"C:\My Documents\Book1.xls",
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing,Type.Missing,Type.Missing);
// Get the first worksheet.
// (Excel uses base 1 indexing, not base 0.)
Excel.Worksheet ws = (Excel.Worksheet)wb.Worksheets[1];
// Print out 1 copy to the default printer:
ws.PrintOut(
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing);
// Cleanup:
GC.Collect();
GC.WaitForPendingFinalizers();
Marshal.FinalReleaseComObject(ws);
wb.Close(false, Type.Missing, Type.Missing);
Marshal.FinalReleaseComObject(wb);
excelApp.Quit();
Marshal.FinalReleaseComObject(excelApp);
}
Espero que esto ayude!
Mike
mejora importante es el código para seleccionar la impresora, por ejemplo:
var printers = System.Drawing.Printing.PrinterSettings.InstalledPrinters;
int printerIndex = 0;
foreach(String s in printers)
{
if (s.Equals("Name of Printer"))
{
break;
}
printerIndex++;
}
xlWorkBook.PrintOut(Type.Missing, Type.Missing, Type.Missing, Type.Missing,printers[printerIndex], Type.Missing, Type.Missing, Type.Missing);
- 1. excel interop alternative
- 2. Excel interop MissingMethodException
- 3. C# y Excel interop
- 4. Microsoft Interop: Excel Column Names
- 5. Eliminar filas vacías con Interop de Excel
- 6. Excel interoperabilidad Imprimir
- 7. Recursos para aprender C# Excel interop
- 8. Guardar hoja de cálculo de Excel con Interop C#
- 9. Usando Interop con C#, Excel Guardar cambiando original. ¿Cómo negar esto?
- 10. ¿Cómo puedo obtener el rango de filas filtradas usando Excel Interop?
- 11. ¿Cuál es la cosa más molesta/extraña que le ha sucedido usando Excel Interop
- 12. levantando un evento vb6 usando interop
- 13. ClojureScript interop
- 14. ¿La forma más rápida de escribir celdas en Excel con Office Interop?
- 15. Microsoft Office Interop Assembly referencias
- 16. clojure/scala interop?
- 17. Imprimir tablas C++ usando GDB
- 18. En C#, ¿cómo utilizo Excel Interop para acelerar la escritura de varios valores de celda?
- 19. Función Excel VBA para imprimir una matriz en el libro
- 20. Cuda y OpenGL Interop
- 21. COM Interop .NET STA
- 22. Java .NET interop
- 23. clojure y scala interop
- 24. Java Interop - Netty + Clojure
- 25. Processing/.NET interop?
- 26. Lectura desde excel usando oledbcommand
- 27. Automatizando Excel 2010 usando F #
- 28. Hacer documentación usando Excel Dna
- 29. WCF & Java Interop utilizando WSHttpBinding,
- 30. C# -excel interop: crear un gráfico en el libro en lugar de en una hoja
muchas gracias !!! esto fue MUY útil! – yeahumok
Genial, me alegro de poder ayudarte. :-) –
no sabría cómo mostrar un diálogo de impresión en lugar de imprimir directamente el documento ... ¿lo haría? – yeahumok