Так в основном лучший способ я понял, чтобы сделать это с помощью Microsoft.Office.Interop.Excel
object misValue = System.Reflection.Missing.Value;
Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook wb = excelApp.Workbooks.Open(Form1.excelPath, misValue, misValue, misValue,
misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue);
Microsoft.Office.Interop.Excel.Worksheet ws = (Microsoft.Office.Interop.Excel.Worksheet)wb.Worksheets[1];
//bring about print dialogue
bool userDidntCancel = excelApp.Dialogs[Microsoft.Office.Interop.Excel.XlBuiltInDialog.xlDialogPrint].Show(misValue,
misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue,
misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue,
misValue, misValue, misValue, misValue, misValue);
userDidntCancel приводит к коробке печати диалога и будет возвращать истинным или ложным, указывающее, нажата ли пользователь «PRINT» или «CANCEL» в диалоговом окне печати, которое вы можете использовать или нет. Я предпочел этот метод, потому что он позволяет пользователю изменять принтеры и другие свойства, и, на мой взгляд, это намного лучше.
Единственная проблема, с которой я столкнулся, заключается в том, что она печатает, что когда-либо лист был вручную открыт и сохранен вручную. Например, в моем случае моя программа вносит некоторые изменения в рабочий лист, а затем сохраняет его. Однако, если пользователь вручную открыл рабочий лист вне программы и сохранил что-то на другом листе, моя программа напечатает этот рабочий лист вместо того, который он только что редактировал. Я не могу понять, как это исправить, поэтому, если у кого-то есть предложения, не стесняйтесь комментировать.
Взгляните на: http://stackoverflow.com/questions/10900565/excel-interop-print –
Я не уверен на 100%, если это будет сделано, что я хочу, но в любом случае, что я установил xlexcel и xlWorkBook? Я получаю, что я бы установил xlWorkSheet в имя рабочего листа и xlRange для диапазона ячеек, которые я хочу напечатать, и, возможно, установил xlWorkBook на путь моей книги, но я не уверен, что делать для xlexcel. –