簡體   English   中英

使用C#打印Excel 2003工作表

[英]Printing Excel 2003 sheet using c#

我正在嘗試使用C#以編程方式打印Excel(2003)工作表。 我可能需要添加一些參考,但是在進行了一些搜索之后,即使有一些建議的參考,我也無法弄清楚要使用什么代碼,因為我嘗試過的所有東西由於某種原因都無法正常工作,所以我什至沒有有任何示例代碼可發布以顯示到目前為止的內容。 我基本上不知道如何使我的程序打印選定的excel工作表,因此任何幫助都將非常有用。

提前致謝。

因此,基本上我想出的最佳方法是使用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帶來打印對話框,並將返回true或false,指示用戶在打印對話框中按下了“ PRINT”還是“ CANCEL”(可以使用或不使用)。 我更喜歡這種方法,因為它允許用戶更改打印機和其他屬性,而我認為這種方法要好得多。

我發現的唯一問題是,它會打印出上次手動打開並保存的工作表。 例如,以我為例,我的程序正在對工作表進行一些更改,然后保存它。 但是,如果用戶在程序外部手動打開工作表並將某些內容保存在其他工作表中,則我的程序將打印該工作表,而不是剛剛編輯的工作表。 我似乎無法解決該問題,因此,如果有人有任何建議,請隨時發表評論。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM