Donc, fondamentalement, la meilleure façon cernées à faire est d'utiliser 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 apporte la boîte de dialogue d'impression et retourne true ou false indiquant si l'utilisateur a appuyé "IMPRIMER" ou "ANNULER" dans la boîte de dialogue d'impression que vous pouvez utiliser ou non. J'ai préféré cette méthode car elle permet à l'utilisateur de changer d'imprimantes et d'autres propriétés et, à mon avis, c'est beaucoup mieux de cette façon.
Le seul problème que j'ai trouvé avec ceci est qu'il imprime quelle feuille de travail a été ouverte et enregistrée manuellement pour la dernière fois. Par exemple, dans mon cas, mon programme apporte des modifications à une feuille de calcul, puis l'enregistre. Toutefois, si l'utilisateur a manuellement ouvert la feuille de calcul en dehors du programme et enregistré quelque chose sur une autre feuille de calcul, mon programme imprimera cette feuille de calcul au lieu de celle qu'il vient d'éditer. Je n'arrive pas à comprendre comment résoudre ce problème, donc si quelqu'un a des suggestions, n'hésitez pas à commenter.
Jetez un oeil à: http://stackoverflow.com/questions/10900565/excel-interop-print –
Je ne suis pas sûr à 100% si cela va accomplir ce que je veux, mais de toute façon, qu'est-ce que je mets xlexcel et xlWorkBook à? J'obtiens que je mettrais xlWorkSheet au nom de la feuille de travail et xlRange à la plage de cellules que je veux imprimer et que xlWorkBook est peut-être défini sur le chemin de mon classeur, mais je ne sais pas quoi faire pour xlexcel. –