2011-10-26 2 views
4

Excel에서 전체 통합 문서를 pdf로 저장하는 방법이 있습니까? 나는 이것을 발견했는데, http://msdn.microsoft.com/en-us/library/bb407651(v=office.12).aspx이지만, 전체 통합 문서를 pdf 또는 활성 시트로 저장하는 경우 정확하게 알려주지 않습니다. 전체 통합 문서를 pdf로 저장할 수있는 방법이 없다면 전체 통합 문서를 인쇄하는 것이 가장 좋은 방법입니까, 아니면 C#에서도 가능합니까? 아래는 제가 지금까지 가지고있는 것입니다. pdf로 저장해야 전자 메일을 보낼 수 있습니다. 도와 주셔서 감사합니다.전체 통합 문서를 PDF로 저장 Excel 2010 (C#)

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(); 

답변

6

2010 년에는 모든 시트를 "활성"시트로 만들어 전체 통합 문서를 PDF로 저장할 수 있습니다. 이상하게 들리지만 pdf 할 때 인쇄 옵션을 발견하면 통합 문서에 대한 옵션이 없습니다. 이 문제를 해결하려면 Excel 파일을 열고 2-3 개의 작업 시트에 데이터를 입력하십시오. 이제 ctrl 키를 잡고 다른 통합 문서를 클릭하면 "그룹"이됩니다.

[GROUP] 이름이 Excel 파일 상단에 나타나며 Excel 파일을 인쇄하면 전체 통합 문서가 인쇄됩니다.

직접 사용해보십시오. 코드에서 각 작업 시트를 활성 워크 시트로 만들면됩니다. 엑셀 객체 모델로는별로 작동하지 않지만 매크로를 수행하고 코드를 살펴볼 가치가 있습니다.

나는 매크로를 기록하고 여기에 VBA입니다 : 당신은 그냥 단순히

Sheets(MyArray).Select

이 의지를 배열의 각 시트를 저장해야하는 것처럼

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

이 보이는 그런 다음 모든 시트를 활성화하고 [그룹화] 한 다음 pdf로 인쇄를 실행할 수 있습니다. 매크로를 기록하여 pdf로 인쇄하는 옵션도 제시했습니다.

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

이 경우 활성 시트는 사용자가 배열에 저장 한 시트 그룹입니다.

+0

하하 나는 똑같은 것을 실행했다. hk kk 나는 아마도 덮개가 가장 좋은 길 일 것이라고 생각한다. –

+0

Russell Saari - 이것을 검증하기 위해 Excel을 열어서 수동으로 실행하면 어떻게되는지 알 수있다. 모든 시트를 활성화하지 않으면 코드는 첫 번째 시트 (활성 시트) 만 인쇄합니다. ctrl 키를 사용하여 각 시트를 클릭 한 다음 엑셀 파일 (이름 영역)의 상단을 보면'[group]'으로 바뀌고 pdf로 저장해야합니다. – JonH

+0

고맙습니다 나는 당신의 것을 정확한 것으로 표시 할 것입니다. 나는 그것이 거의 끝났다고 대답 할 것입니다. \ –

관련 문제