使用Process.Start将Excel文件发送到打印机

时间:2018-10-18 13:04:41

标签: c# excel printing

我想使用c#控制台应用程序将excel文件发送到打印机。我尝试过这样的事情。

    public static void printExcel(string printpath)
    {

        string printerName = String.Empty;
        for (int i = 0; i < PrinterSettings.InstalledPrinters.Count; i++)
        {
            string pName = PrinterSettings.InstalledPrinters[i];
            if (pName.Contains("PRINTER"))
            {
                printerName = pName;
                break;
            }
        }

        try
        {
            ProcessStartInfo info = new ProcessStartInfo(printpath); 
            info.Verb = "PrintTo";
            info.Arguments = printerName;
            info.CreateNoWindow = true;
            info.WindowStyle = ProcessWindowStyle.Hidden;
            Process.Start(info);

        }
        catch (Exception ex) { Console.WriteLine(ex.Message); }

    }

此控制台应用程序将像批处理一样运行。因此,它必须在没有任何提示屏幕的情况下运行。但是,当应用程序运行时,我遇到了一些excel错误。当我单击“是”时,Excel发送到打印机。 enter image description here 我怎么解决这个问题?

1 个答案:

答案 0 :(得分:0)

似乎与excel的安全模式有关。如果文件来自其他来源,也许您应该检查一下。您可以尝试检查xlsx文件的属性吗?它可能已被阻止,也许您需要释放阻止。