将整个工作簿保存为PDF Excel 2010(C#)

有没有办法在Excel中将整个工作簿保存为PDF格式。 我发现这个, http://msdn.microsoft.com/en-us/library/bb407651(v=office.12).aspx ,但它并不完全告诉你,如果它将整个工作簿保存为PDF或只是活动工作表。 如果没有办法将整个工作簿保存为pdf,那么打印整个工作簿是最好的select,甚至可能在C#中? 以下是我到目前为止我只需要它保存为PDF格式,所以我可以发送电子邮件。 谢谢您的帮助。

using Excel = Microsoft.Office.Interop.Excel; //Excel Reference //Gets Excel and gets Activeworkbook and worksheet Excel.Application oXL; Excel.Workbook oWB; Excel.Worksheet oSheet; //Create New Instance in Excel oXL = new Excel.Application(); oXL.Visible = true; //Open Excel Workbook oWB = oXL.Workbooks.Open(""); oWB = (Excel.Workbook)oXL.ActiveWorkbook; oSheet = (Excel.Worksheet)oWB.ActiveSheet; //Modify Excel Spreadsheet Based on Form oSheet.Cells[6, 4] = maskedTextBox1.Text; //Change Value in Cell, Cell Location [y-axis, x-axis] //Save Workbook As oWB.SaveAs(""); //Save Workbook As PDF //Close Workbook oWB.Close(""); //Quit Excel oXL.Quit(); 

在2010年,您可以通过将每个工作表设置为“活动”工作表来将整个工作簿保存为PDF。 听起来很奇怪,但是如果你在做pdf的时候注意到了打印选项,工作簿就没有选项了。 为了解决这个问题,打开一个excel文件并在2-3张工作表中填写一些数据。 现在按住你的ctrl键,然后点击对方的工作簿,它就会变成一个“组”。

您会注意到[GROUP]名称出现在Excel文件的顶部,现在当您打印Excel文件时,它将打印整个工作簿。

亲自尝试一下。 在代码中,您只需要使每个工作表成为活动工作表。 我对excel对象模型工作不多,但可能值得为此做一个macros,并查看代码。

我logging了一个macros,这里是VBA:

Sheets(Array("Sheet1", "Sheet2", "Sheet3")).Select

看起来好像你只需要将每张表单存储在一个数组中然后就可以了

Sheets(MyArray).Select

然后这将使所有表单活动和[分组],然后你可以运行一个打印出来的PDF。 通过录制macros,它还提供了打印到PDF格式的选项:

 `ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ "C:\Users\MyAccount\Desktop\test.pdf", Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _ True` 

在这种情况下,活动工作表是您存储在数组中的工作表组。