C ++ ExportAsFixedFormat保存为PDF

时间:2015-03-19 14:16:06

标签: c++ excel pdf automation export

我正在使用VS2010 C ++和Office 2010来创建基于Excel模板的报表。 C ++可以成功打开,插入值和将xlsx保存为其他内容,但我希望将其另存为PDF。尽管在VB,C#和PowerShell中看到了示例,但我正在努力使用ExportAsFixedFormat()函数的_variant_t参数。任何人都可以提供示例代码吗? 我的功能的外壳:

Excel::_ApplicationPtr pXL;  
if (FAILED(pXL.CreateInstance("Excel.Application")))  
{  
    return FALSE;  
}
pXL->Workbooks->Open("c:\\tempRep.xlsx");
pXL->PutVisible(0, FALSE);

// Get the active worksheet
Excel::_WorksheetPtr pWksheet = pXL->ActiveSheet;

//... use the spreadsheet

// Save the worksheet
pWksheet->SaveAs("c:\\newRep.xlsx"); 

pWksheet->ExportAsFixedFormat(??const _variant_t &Filename, ....??)

谢谢,史蒂夫

2 个答案:

答案 0 :(得分:0)

尝试使用SetString method

_variant_t Filename;
Filename.SetString("c:\\temp\\myfile.txt");
pWksheet->ExportAsFixedFormat(Filename, ....)

答案 1 :(得分:0)

从微软的文档中,它是0或1,对我有用。 https://msdn.microsoft.com/en-us/library/bb241296(v=office.12).aspx

VARIANT vtMissing; // VARIANT defining a missing/optional parameter.
vtMissing.vt = VT_ERROR;
vtMissing.scode = DISP_E_PARAMNOTFOUND;

book.ExportAsFixedFormat(0, COleVariant(TEXT("myExportPDF.pdf")), vtMissing,
    vtMissing, vtMissing, vtMissing, vtMissing, vtMissing, vtMissing);