使用ABAP代码将Excel转换为PDF

2020-08-24 11:39发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


朋友您好,我有一个简单的Excel文件,我想使用ABAP代码将其转换为PDF。 从DOC文件到PDF的转换是通过下面的代码完成的,但是当您尝试将Excel集成到此代码中时不会发生。 请帮帮我!!

*************************************************** ****************************************

数据:lv_wordapp类型ole2_object,
lv_worddoc类型ole2_object,
lv_wordadoc类型ole2_object,
lv_wordcont类型c长度8。
创建对象lv_wordapp'WORD.APPLICATION'。
set属性 lv_wordapp'可见'=0。lv_wordapp'文档'的调用方法= lv_worddoc。lv_worddoc'Open'的调用方法
exporting
#1 ='D:\ ITSM \ huseyins.docx' 。
lv_wordapp'ActiveDocument'的调用方法= lv_wordadoc。
lv_wordadoc'Content'的调用方法= lv_wordcont。 exporting
#1 ='D:\ ITSM \ huseyins.pdf '
#2 =17。"另存为lv_wordapp'Quit'的PDF文件
调用方法。
免费对象lv_wordapp。

*************************************************** ****************************************

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


朋友您好,我有一个简单的Excel文件,我想使用ABAP代码将其转换为PDF。 从DOC文件到PDF的转换是通过下面的代码完成的,但是当您尝试将Excel集成到此代码中时不会发生。 请帮帮我!!

*************************************************** ****************************************

数据:lv_wordapp类型ole2_object,
lv_worddoc类型ole2_object,
lv_wordadoc类型ole2_object,
lv_wordcont类型c长度8。
创建对象lv_wordapp'WORD.APPLICATION'。
set属性 lv_wordapp'可见'=0。lv_wordapp'文档'的调用方法= lv_worddoc。lv_worddoc'Open'的调用方法
exporting
#1 ='D:\ ITSM \ huseyins.docx' 。
lv_wordapp'ActiveDocument'的调用方法= lv_wordadoc。
lv_wordadoc'Content'的调用方法= lv_wordcont。 exporting
#1 ='D:\ ITSM \ huseyins.pdf '
#2 =17。"另存为lv_wordapp'Quit'的PDF文件
调用方法。
免费对象lv_wordapp。

*************************************************** ****************************************

付费偷看设置
发送
3条回答
葫芦娃快救爷爷
1楼 · 2020-08-24 12:05.采纳回答

这将起作用。 路径区分大小写:

 
* ------------------------------------------- --------------------------- * *使用Excel将电子表格转换为pdf * ------------------------------------------------- --------------------- * 报告y_excel_ole_pdf。 程序加载。 *允许对工作站上启用COM的程序进行OLE调用(例如Excel) 包括ole2incl。 * OLE对象的句柄 数据:oexcel TYPE ole2_object," Excel对象 owbs TYPE ole2_object,"工作簿的集合 owb TYPE ole2_object。 "工作簿 *&------------------------------------------------ --------------------- * *&表格ErrorHandler *&------------------------------------------------ --------------------- * *如果SAP返回任何错误,则输出OLE错误 * ------------------------------------------------- --------------------- * FORM错误处理程序。 如果sy-subrc <> 0。 写:/'OLE自动化错误:'(010),sy-subrc。 oexcel'Quit'的呼叫方法。 免费对象oexcel。 停。 万一。 ENDFORM。 "错误处理程序 参数:p_source TYPE字符串小写。 参数:p_dest TYPE字符串小写。 选择开始。 *启动Excel的新副本 创建对象oexcel'EXCEL.APPLICATION'。 执行错误处理程序。 "设置oExcel = CreateObject() *现在(更快)隐藏Excel窗口 将oexcel的"设置属性"设置为"可见" = 0。 执行错误处理程序。 " oExcel.Visible = False *告诉Excel不要每次更改都更新整个工作表(更快) 设置oexcel'ScreenUpdating'的属性= 0。 执行错误处理程序。 " oExcel.ScreenUpdating = False *获取工作簿列表,最初是空的 oexcel的调用方法"工作簿" = owbs。 执行错误处理程序。 "设置oWBs = oExcel.Workbooks *打开Excel文件,返回工作簿 owbs的呼叫方法'Open'" = owb 导出#1 = p_source。 执行错误处理程序。 " oWBs.Open P_Source owbs的呼叫方法'Item'= owb 导出#1 = 1。 执行错误处理程序。 "设置oWB = oWBs.Item(1) *使用先前定义的用户名称将文件导出为PDF owb'ExportAsFixedFormat'的调用方法 导出#1 = 0" Type = xlTypePDF #2 = p_dest。 "文档名称 执行错误处理程序。 " oWB.ExportAsFixedFormat xlTypePDF,P_Dest *关闭Excel文件而不保存更改 owb"关闭"的呼叫方法 导出#1 =0。"保存= False 执行错误处理程序。 " oWB.Close(保存= False) *告诉Excel在每次更改时恢复更新整个工作表 设置oexcel'ScreenUpdating'的属性= 1。 执行错误处理程序。 " Application.ScreenUpdating = True *告诉Excel向用户显示工作表 设置oexcel'可见'的属性= 1。 执行错误处理程序。 " oExcel.Visible = True oexcel'Quit'的呼叫方法。 执行错误处理程序。 " oExcel。退出 *与Excel断开连接 免费对象oexcel。 PERFORM错误处理程序。
95年老男孩
2楼-- · 2020-08-24 12:06

感谢您访问SAP社区以获得问题的答案。 我建议您熟悉 https://community.sap.com/resources/questions- 和答案(如果您还没有的话),因为它提供了准备问题的技巧,这些问题引起了我们成员的反馈。 例如,您可以概述采取哪些步骤来查找答案(以及为什么它们对您没有帮助),共享您所见/完成的屏幕截图,确保已应用正确的标签,等等。 您提供的详细信息越多,成员越有可能为您提供帮助。

如果您愿意,可以先选择"操作",然后再编辑来修改问题(尽管一旦有人回答了问题,您将失去编辑问题的能力)。 在编辑时,您也可以在问题中"插入代码"(不仅仅是将文本复制到问题的正文中)。 您将在选项的最右边看到"插入代码"选项(在"插入文件"图标旁边)。

-Jerry

spaceman01
3楼-- · 2020-08-24 12:19

你好胡安。 感谢您的回答。 最后,我有你的要求。 我想将桌子旋转90度。 你能帮助我吗? 谢谢。

一周热门 更多>