ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Printing an existing excel file in C# (https://www.excelbanter.com/excel-programming/392790-printing-existing-excel-file-c.html)

Miran

Printing an existing excel file in C#
 
Hi,
I have an xls file i would like to printout from my application. So far i
have found this example for printing in general
Process pr = new Process();
pr.StartInfo.FileName = "MyFile.xls";
pr.StartInfo.CreateNoWindow = true;
pr.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
pr.StartInfo.Verb = "Print";
pr.Start();
pr.WaitForExit();
pr.Dispose();
this prints good but the problem i would like to hide excel from the user or
find an alternative way to print the file, without user being aware of any
other processes except printing, any ideas or help i greatly appreciated


urkec

Printing an existing excel file in C#
 
"Miran" wrote:

Hi,
I have an xls file i would like to printout from my application. So far i
have found this example for printing in general
Process pr = new Process();
pr.StartInfo.FileName = "MyFile.xls";
pr.StartInfo.CreateNoWindow = true;
pr.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
pr.StartInfo.Verb = "Print";
pr.Start();
pr.WaitForExit();
pr.Dispose();
this prints good but the problem i would like to hide excel from the user or
find an alternative way to print the file, without user being aware of any
other processes except printing, any ideas or help i greatly appreciated


You could use COM interop and Excel object model to set Application.Visible
to false, open the file you want and print it:

using System;
using System.Reflection;
using Microsoft.Office.Interop.Excel;

class XLPrintTest
{
static void Main()
{
Application ExcelApp = new Application ();
ExcelApp.Visible = false;
ExcelApp.DisplayAlerts = false;

Workbook WBook = ExcelApp.Workbooks.Open
", Missing.Value,
Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value,
Missing.Value);

WBook.PrintOut (Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value);

WBook.Close (false, Missing.Value, Missing.Value);

ExcelApp.Quit ();
}
}

--
urkec


Miran

Printing an existing excel file in C#
 
thx for solving the problem

"urkec" wrote:

"Miran" wrote:

Hi,
I have an xls file i would like to printout from my application. So far i
have found this example for printing in general
Process pr = new Process();
pr.StartInfo.FileName = "MyFile.xls";
pr.StartInfo.CreateNoWindow = true;
pr.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
pr.StartInfo.Verb = "Print";
pr.Start();
pr.WaitForExit();
pr.Dispose();
this prints good but the problem i would like to hide excel from the user or
find an alternative way to print the file, without user being aware of any
other processes except printing, any ideas or help i greatly appreciated


You could use COM interop and Excel object model to set Application.Visible
to false, open the file you want and print it:

using System;
using System.Reflection;
using Microsoft.Office.Interop.Excel;

class XLPrintTest
{
static void Main()
{
Application ExcelApp = new Application ();
ExcelApp.Visible = false;
ExcelApp.DisplayAlerts = false;

Workbook WBook = ExcelApp.Workbooks.Open
", Missing.Value,
Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value,
Missing.Value);

WBook.PrintOut (Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value);

WBook.Close (false, Missing.Value, Missing.Value);

ExcelApp.Quit ();
}
}

--
urkec



All times are GMT +1. The time now is 09:57 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com