2016-11-07 2 views
0

Я использую следующий код:Как использовать AppleScript, чтобы сохранить один лист Excel как PDF

set PDFName to --desired path and name of PDF file to save 
set excelName to --desired path and name of Excel file to open 

tell application "/Applications/Microsoft Excel.app" 
    set isRun to running 
    set wkbk1 to open workbook workbook file name excelName 

    --Problem 
    save (sheet "Invoice" of wkbk1) in PDFName as PDF file format 
    --/Problem 

    close wkbk1 saving no 
    if not isRun then quit 
end tell 

Я в конечном итоге с ВСЕЙ книги преобразуется в 60-страничном-долгосрочной PDF, а не только один лист! Я делаю что-то неправильно? Как я могу это исправить?

+0

Я думаю, ваш ответ в StackOverflow ссылке: [ссылка] (http://stackoverflow.com/questions/37394771/applescript-excel-2016-save-as -pdf) – pbell

+0

Я действительно использовал этот пост, чтобы написать это кодирование. Проблема, с которой я сталкиваюсь, отличается от той, которая у него есть, я думаю ... –

+0

Я протестировал ее сам и, несмотря на «сохранить активный лист», он сохраняет все листы в Excel 2011. Кажется, это ошибка Excel! Затем я предлагаю удалить перед сохранением все листы, которые вы не хотите конвертировать ... тогда будет преобразован только лист, который вы хотите. ... и закройте книгу без сохранения. – pbell

ответ

0

Я пытался копировать/вставлять значения только в новый лист, но я не смог. Специальная паста ... ничего.

Поэтому вместо этого я извлек лист первого основного документа и скопировал его в новый временный документ, затем я сохраняю документ temp как PDF и закрываю как новый документ temp, так и основной документ.

Он работает с скриптом ниже:

set PDFPath to "Users:imac27:Desktop:Test22.PDF" -- destination of the PDF 

tell application "Microsoft Excel" 
activate 
set SourceDoc to front document 
set NameWB to name of front document -- get name of the document (for close) 
tell SourceDoc to set SourceSheet to active sheet -- get sheet to be extracted 
set newDoc to make new workbook -- create new workbook 
tell newDoc 
    set FirstSheet to first sheet of newDoc 
    copy worksheet SourceSheet after FirstSheet -- copy sheet to be extracted in new doc 
end tell 
set display alerts to false -- to avoid warning "are you sure...?) 
delete FirstSheet -- delete defautl sheet of new doc to keep only the copied sheet 
save active sheet in PDFPath as PDF file format -- save temp workbook as PDf 
close active workbook saving no -- close temp workbook 
close workbook NameWB saving no -- close main document 
end tell 
Смежные вопросы