使用OLE使用公式从ABAP程序下载Xls文件

2020-08-13 20:16发布

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

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


您好,

我正在尝试下载显示为ALV的Xls文件,我能够通过OLE下载Xls文件。 除此之外,我应该为每个单元格插入公式

例如,我有3个字段A,B和C。我正在为字段C中的每个单元格计算C = A + B。当我单击Xls文件中的特定单元格时,我应该在单元格中显示公式 就像我们的Excel公式一样。

谢谢您的帮助。

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

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


您好,

我正在尝试下载显示为ALV的Xls文件,我能够通过OLE下载Xls文件。 除此之外,我应该为每个单元格插入公式

例如,我有3个字段A,B和C。我正在为字段C中的每个单元格计算C = A + B。当我单击Xls文件中的特定单元格时,我应该在单元格中显示公式 就像我们的Excel公式一样。

谢谢您的帮助。

付费偷看设置
发送
6条回答
落灬小鱼
1楼-- · 2020-08-13 20:34

嗨,

据我所知,不可能使用OLE将公式添加到XLS文件中。

我认为您有2个选择:

< ul>
  • 使用 ABAP2XLSX (支持公式)
  • 使用相同的字段创建第二个内部表 作为要显示的当前内部表,请在此内部表中添加计算值的字段。 通过OLE将数据导出到Excel之前,将数据复制到第二个内部表并计算所需的值。 将第二个内部表导出到Excel。
  • 选项1是最灵活的一种,因为您可以将公式添加到Excel文件中。 这也意味着当用户更改值时,将重新计算该列。 使用第二种解决方案,您将失去公式的优势。

    最好的问候,

    Geert-Jan Klaps

    派大星 ヾ
    2楼-- · 2020-08-13 20:20

    Hi Geert-jan Klaps,

    感谢您的帮助!!!!,

    #Method-1:

    通过使用OLE,我们也可以在Excel工作表中插入公式,我做到了。

    数据:lv_count类型字符串,

    lv_formula类型的字符串,

    * v_row是行号

    lv_count = v_row。
    将'= SUM(H'lv_count':I'lv_count')'并入lv_formula。
    设置单元格的属性'Formula'= lv_formula。

    *示例:如果v_row = 1,则公式为'= SUM(H1:I1)'

    #Method-2

    通过使用Ixlm工厂,我们可以在公式的侧面构建一个excel文件。

    野沐沐
    3楼-- · 2020-08-13 20:29

    嗨,

    一旦您使用ABAPGIT将ABAP2XLSX框架导入到系统中, 会有很多可用的例子。 包中包含的报告ZDEMO_EXCEL6显示了如何将公式添加到Excel工作表。

    您可以在此处查看ZDEMO_EXCEL6的代码:https://github.com/sapmentors/abap2xlsx/blob/master/src/zdemo_excel6.prog.abap

    最诚挚的问候 ,

    Geert-Jan Klaps

    天桥码农
    4楼-- · 2020-08-13 20:28

    请使用COMMENT按钮输入评论,问题,添加详细信息等,ANSWER只是提出解决方案,请在以下位置删除SAP文本 答案区域的右边。 同时,系统会将您的评论告知该人(当前不会)。

    梦想连接
    5楼-- · 2020-08-13 20:33

    您好,

    尝试这样的事情。

     row_count = 0。
     做5次。
       row_count = row_count + 1。
       lo_worksheet'Cells'的调用方法= lo_cell
       出口
       #1 = row_count"行
       #2 =1。"列
       lo_cell"值"的设置属性= row_count。
    
       lo_worksheet'Cells'的调用方法= lo_cell
       出口
       #1 = row_count"行
       #2 =2。"列
       lo_cell的SET属性"值" = row_count。
    
       将row_count写入TO计数器。
       CONCATENATE'= SUM(A'counter':B'counter')'INTO公式。
    
       lo_worksheet'Cells'的调用方法= lo_cell
       出口
       #1 = row_count"行
       #2 =3。"列
       lo_cell的SET属性"值" =公式。
     ENDDO。
    95年老男孩
    6楼-- · 2020-08-13 20:47

    嗨,Geert-Jan Klaps,

    感谢您的回复,

    但是从ALV报告下载时,我不明白如何在excel中添加公式,如果可以的话,请提供示例程序使其清晰。

    谢谢.... !!!!!

    一周热门 更多>