将excel文件保存为pdf

时间:2013-07-08 18:46:31

标签: excel automation

我正在寻找最佳解决方案来执行以下操作:

我有大约640个Excel文件,每个文件大约有9-12张。我想将每张表格保存为PDF格式。目前,该过程是手动完成的。选择工作表 - >档案 - >另存为 - > pdf - >浏览一百万个文件夹。如您所见,这非常耗时且效率低下。

我知道如何在C#中编程但是我的机器上没有visual studio。但是,如果最好的方法是VS,那么如果他们有我的许可证,我可以让IT团队安装VS.

我可以使用的唯一工具是Excel(甚至Access都不可用)。所以我将主要寻找VBA代码。如果这意味着打开每个文件以粘贴VBA代码,它仍然会更快,然后将每个工作表保存为PDF。

1 个答案:

答案 0 :(得分: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来完成。