通过 powerbuilder 以编程方式将 Excel sheet 保存为 PDF
Save an Excel sheet as PDF programatically through powerbuilder
需要通过 powerbuilder
(Powerbuilder 12.5.1) 以编程方式将 excel sheet 保存为 pdf 文件。
我运行下面的代码;但是,我没有得到正确的结果。如果我应该做些不同的事情,请告诉我。
OLEObject ole_excel;
ole_excel = create OLEObject;
IF ( ole_excel.ConnectToObject(ls_DocPath) = 0 ) THEN
ole_excel.application.activeworkbook.SaveAs(ls_DocPath,17);
ole_excel.application.activeworkbook.ExportAsFixedFormat(0,ls_DocPath);
END IF;
....... (Parsing values from excel)
DESTROY ole_excel;
我已经在这个社区和其他社区中搜索过解决方案,但到目前为止还没有成功。我尝试使用在这次搜索中找到的两个不同的命令。它们都 return 一个空对象引用错误。如果有人能指出正确的方向,那就太好了。
workBook.saveAs()
文档说 saveAs() 具有以下参数:
SaveAs(Filename, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, AddToMru, TextCodepage, TextVisualLayout, Local)
我们需要前两个参数:
FileName
- 包含文件名和扩展名的完整路径,例如:c:\myfolder\file.pdf
FileFormat
- 预定义常量,表示目标文件格式。
根据 google(MS 没有列出 XLFileFormat 的 pdf
格式常量),pdf
的文件格式等于 57
所以,尝试使用以下调用:
ole_excel.application.activeworkbook.SaveAs(ls_DocPath, 57);
在我看来,您需要参考 'activeworkbook'。这将是 OLEobject 类型,因此声明类似于:OLEobject lole_workbook.
然后你需要将它设置为活动工作簿。在 Excel 上寻找 VBA 代码(应该在 Excel 帮助中),寻找类似 'getactiveworkbook' 方法的代码。然后你(在 PB 中)需要做类似的事情
lole_workbook = ole_excel.application.activeworkbook
这会获取 PB 对活动工作簿的引用。那你saveas之类的是不是这样lole_workbook.SaveAs(ls_DocPath,17)
需要通过 powerbuilder
(Powerbuilder 12.5.1) 以编程方式将 excel sheet 保存为 pdf 文件。
我运行下面的代码;但是,我没有得到正确的结果。如果我应该做些不同的事情,请告诉我。
OLEObject ole_excel;
ole_excel = create OLEObject;
IF ( ole_excel.ConnectToObject(ls_DocPath) = 0 ) THEN
ole_excel.application.activeworkbook.SaveAs(ls_DocPath,17);
ole_excel.application.activeworkbook.ExportAsFixedFormat(0,ls_DocPath);
END IF;
....... (Parsing values from excel)
DESTROY ole_excel;
我已经在这个社区和其他社区中搜索过解决方案,但到目前为止还没有成功。我尝试使用在这次搜索中找到的两个不同的命令。它们都 return 一个空对象引用错误。如果有人能指出正确的方向,那就太好了。
workBook.saveAs()
文档说 saveAs() 具有以下参数:
SaveAs(Filename, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, AddToMru, TextCodepage, TextVisualLayout, Local)
我们需要前两个参数:
FileName
- 包含文件名和扩展名的完整路径,例如:c:\myfolder\file.pdf
FileFormat
- 预定义常量,表示目标文件格式。
根据 google(MS 没有列出 XLFileFormat 的 pdf
格式常量),pdf
的文件格式等于 57
所以,尝试使用以下调用:
ole_excel.application.activeworkbook.SaveAs(ls_DocPath, 57);
在我看来,您需要参考 'activeworkbook'。这将是 OLEobject 类型,因此声明类似于:OLEobject lole_workbook.
然后你需要将它设置为活动工作簿。在 Excel 上寻找 VBA 代码(应该在 Excel 帮助中),寻找类似 'getactiveworkbook' 方法的代码。然后你(在 PB 中)需要做类似的事情
lole_workbook = ole_excel.application.activeworkbook
这会获取 PB 对活动工作簿的引用。那你saveas之类的是不是这样lole_workbook.SaveAs(ls_DocPath,17)