2013-07-08 2 views
0

다음 작업을 수행 할 수있는 최상의 솔루션을 찾고 있습니다.pdf로 파일을 Excel로 저장

나는 각각 약 9-12 개의 시트가 포함 된 약 640 개의 Excel 파일이 있습니다. 각 시트를 PDF로 저장하고 싶습니다. 현재 프로세스는 수동으로 수행됩니다. 시트 -> 파일 -> 다른 이름으로 저장 -> pdf -> 백만개의 폴더를 탐색하십시오. 보시다시피 이것은 매우 시간이 오래 걸리고 비효율적입니다.

저는 C#으로 프로그래밍하는 방법을 알고 있지만 컴퓨터에는 Visual Studio가 없습니다. 그러나 이것을 수행하는 가장 좋은 방법이 VS라면 아마 나를 위해 라이센스를 가지고 있다면 IT 팀에게 VS를 설치할 수 있습니다.

나에게 사용할 수있는 유일한 도구는 Excel (심지어 액세스가 가능하지 않음)입니다. 그래서 저는 주로 VBA 코드를 찾고있을 것입니다. VBA 코드를 붙여 넣기 위해 각 파일을 여는 것을 의미하면 각 시트를 PDF로 저장하는 것이 더 빠릅니다.

+0

어떻게하면 도움이 될까요? ... 그런데 PDF로 저장하려는 각 파일에 vba 코드를 배치 할 필요는 없지만 각 파일을 열어 VBA로 저장해야합니다. .. –

+0

단일 파일을 처리하는 동안 매크로를 기록하십시오 : 좋은 시작점을 제공해야합니다. –

+0

@KazJaw 아니요, 단일 VBA 매크로는 .xls 통합 문서를 열고 PDF로 저장할 수 있습니다. 그들 모두를 .xlsm – Jack

답변

1

당신은 PowerShell을

를 사용하여 목표를 달성 할 수

ExportTo-ExcelPDF.ps1

$path = "c:\fso" 
$xlFixedFormat = "Microsoft.Office.Interop.Excel.xlFixedFormatType" -as [type] 
$excelFiles = Get-ChildItem -Path $path -include *.xls, *.xlsx -recurse 
$objExcel = New-Object -ComObject excel.application 
$objExcel.visible = $false 
foreach($wb in $excelFiles) 
{ 
$filepath = Join-Path -Path $path -ChildPath ($wb.BaseName + ".pdf") 
$workbook = $objExcel.workbooks.open($wb.fullname, 3) 
$workbook.Saved = $true 
"saving $filepath" 
$workbook.ExportAsFixedFormat($xlFixedFormat::xlTypePDF, $filepath) 
$objExcel.Workbooks.close() 
} 
$objExcel.Quit() 

http://blogs.technet.com/b/heyscriptingguy/archive/2010/09/06/save-a-microsoft-excel-workbook-as-a-pdf-file-by-using-powershell.aspx

C#으로 동일한 COM API를 사용하는 것도 매우 간단하다 당신을 무료 Visual Studio 2012 Express로 수행 할 수 있습니다.

+0

Win XP에 powershell을 설치할 수 있습니까? 또는 CMD 대안이 있습니까? – masfenix

+0

방금 ​​테스트를 해본 결과 모든 시트가 하나의 pdf로 저장됩니다. 각 장을 별도의 pdf로 저장하고 싶습니다. 따라서 9-12 개의 시트가있는 각 Excel 파일의 경우 9-12 개의 pdf 파일을 다시 가져와야합니다. – masfenix

+0

내부 루프를 설정하고 원하는 페이지 범위를 지정하는 * From * 및 * To * 매개 변수를 사용하여 각 통합 문서의 시트 당 한 번 ExportAsFixedFormat을 호출 할 수 있습니다. http://msdn.microsoft.com/en-us/library/office/bb238907(v=office.12).aspx를 참조하십시오. –