How to save an Excel sheet as PDF through MATLAB?

31 次查看(过去 30 天)
I am using the following code:
hExcel = actxserver('Excel.Application');
hWorkbook = hExcel.Workbooks.Open(sprintf('%s','C:\test.xlsx'));
hWorksheet = hWorkbook.Sheets.Item(1);
hRange = hWorksheet.Range('A1:O10');
hRange.ExportAsFixedFormat('xlTypePDF','test_out.pdf');
The Excel ActiveX server allows me to do the usual stuff, but the last line doesn't do anything. Neither does it throw any error.
Does anyone know how to do this?
  1 个评论
Praveen
Praveen 2016-12-28
hRange.ExportAsFixedFormat('xlTypePDF','test_out.pdf'); In this code give the path name, it works.. For example 'C:\test_out.pdf' instead of test

请先登录,再进行评论。

采纳的回答

Cel Kulasekaran
Cel Kulasekaran 2015-1-13
编辑:Cel Kulasekaran 2015-1-13
First, set the print area within the workbook itself, then you'll need to call ExportAsFixedFormat on the worksheet or workbook object. You cannot call it on the range object. Hope this helps, see below:
hExcel = actxserver('Excel.Application');
hWorkbook = hExcel.Workbooks.Open(sprintf('%s','C:\test.xlsx'));
hWorksheet = hWorkbook.Sheets.Item(1);
% print this sheet to PDF
hWorksheet.ExportAsFixedFormat('xlTypePDF','C:\test_out.pdf');
  5 个评论
Garrett Cassidy
Garrett Cassidy 2021-1-27
Is there a way to make it save 'Entire workbook'? When I manualy save as PDF I can click 'Options' then save 'Entire workbook' this saves each sheet as a page in the PDF.
Garrett Cassidy
Garrett Cassidy 2021-1-27
Answer my own question:
hExcel = actxserver('Excel.Application');
hWorkbook = hExcel.Workbooks.Open(sprintf('%s','C:\test'));
% Pring the workbook
hWorkbook.ExportAsFixedFormat('xlTypePDF','C:\test_out.pdf');

请先登录,再进行评论。

更多回答(1 个)

Intissar El Bouanani
it is possible to print the selected field in one page

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by