abap 操作 excel

一个不错的操作 excel 的文章
https://www.elearningsolutions.co.in/a-to-z-of-ole-excel-in-abap-7-4-2/

重点

workbooks 和 workbook 是两个变量,open、saveAs 的时候都用 workbook

复制代码
 CALL METHOD OF lo_excel 'Workbooks' = lo_workbooks.
  CALL METHOD OF lo_workbooks 'Open' = lo_workbook
    EXPORTING
      #1 = file_mal.

完整代码

复制代码
REPORT z_save_excel.

*----------------------------------------------------------------------*
*  DATA DECLARATIONS
*----------------------------------------------------------------------*
DATA: lo_excel       TYPE  ole2_object,  " Excel 应用对象
      lo_workbooks   TYPE  ole2_object,  " 工作簿集合
      lo_workbook    TYPE  ole2_object,  " 当前工作簿
      lo_worksheet   TYPE  ole2_object,  " 当前工作表
      lo_range       TYPE  ole2_object,
      lv_template    TYPE string,              " 模板文件路径
      lv_save_path   TYPE string,              " 保存路径
      lv_msg         TYPE string.              " 消息文本

*----------------------------------------------------------------------*
*  MACRO: 安全释放 OLE 对象
*----------------------------------------------------------------------*


*----------------------------------------------------------------------*
*  START-OF-SELECTION
*----------------------------------------------------------------------*
START-OF-SELECTION.
  PARAMETERS file_mal(100) TYPE c LOWER CASE DEFAULT 'D:\Template.xlsx'.
    PERFORM genexcel.
    write: 'finish', file_mal.

form genexcel.
  lv_template = 'D:\Template.xlsx'.  " 示例:本地模板文件路径

  lv_save_path = 'D:\Hello_ABAP.xlsx'.
  CREATE OBJECT lo_excel 'excel.application'.
  IF sy-subrc <> 0.
    MESSAGE '无法启动 Excel 应用,请检查是否安装 Excel' TYPE 'E'.
  ENDIF.


*  # 设置 Excel 可见性,便于调试(完成后可以注释掉)
  SET PROPERTY OF lo_excel 'visible' = 1.

  CALL METHOD OF lo_excel 'Workbooks' = lo_workbooks.
  CALL METHOD OF lo_workbooks 'Open' = lo_workbook
    EXPORTING
      #1 = file_mal.

  CALL METHOD OF lo_workbook 'Worksheets' = lo_worksheet
    EXPORTING
      #1 = 1.  " 1 表示第一个工作表(Sheet1)
   " 使用Range方法直接操作A1单元格
  CALL METHOD OF lo_worksheet 'Range' = lo_range
    EXPORTING
      #1 = 'A1'.

  " 在A1单元格写入值
  SET PROPERTY OF lo_range 'Value' = 'hello world'.

  CALL METHOD OF lo_workbook 'SaveAs'
    EXPORTING
      #1 = lv_save_path.

  MESSAGE '文件已保存至:' && lv_save_path TYPE 'S'.



  CALL METHOD OF lo_workbook 'Close'
    EXPORTING
      #1 = ABAP_FALSE. " 关闭时不再次保存
ENDFORM.
相关推荐
毕设十刻7 分钟前
基于Vue的学分预警系统98k51(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
前端·数据库·vue.js
与遨游于天地10 分钟前
Spring解决循环依赖实际就是用了个递归
java·后端·spring
陈果然DeepVersion13 分钟前
Java大厂面试真题:Spring Boot+微服务+AI智能客服三轮技术拷问实录(六)
java·spring boot·redis·微服务·面试题·rag·ai智能客服
BeingACoder37 分钟前
【SAA】SpringAI Alibaba学习笔记(一):SSE与WS的区别以及如何注入多个AI模型
java·笔记·学习·saa·springai
DolphinScheduler社区38 分钟前
真实迁移案例:从 Azkaban 到 DolphinScheduler 的选型与实践
java·大数据·开源·任务调度·azkaban·海豚调度·迁移案例
liliangcsdn1 小时前
如何利用约束提示优化LLM在问题转sql的一致性
数据库·sql
zhangkaixuan4561 小时前
Apache Paimon 写入流程
java·大数据·apache·paimon
Java爱好狂.2 小时前
分布式ID|从源码角度深度解析美团Leaf双Buffer优化方案
java·数据库·分布式·分布式id·es·java面试·java程序员
Elastic 中国社区官方博客2 小时前
通过混合搜索重排序提升多语言嵌入模型的相关性
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
胡桃夹夹子2 小时前
存档111111111
java·开发语言