首页 > 其他分享 >EXCEL中日期对应的数值如何转换为ABAP中的日期

EXCEL中日期对应的数值如何转换为ABAP中的日期

时间:2023-02-03 17:23:11浏览次数:50  
标签:00 EXCEL Excel ABAP days 日期 对应 1900

在开发批导程序时会从Excel中获取数据,但有些获取Excel内容的方法获取到的日期是其对应的数字

原来Excel在本质上是将日期和时间的存储为一个数字的.

默认情况下,Excel把1900-1-1 0:00:00存储为1,把1900-1-1 0:00:00以后的每一个时刻存储为该时刻与1900-1-1 0:00:00这个时刻的差值(以天为单位)。

比如在日期时间1900-1-2 13:00在Excel中对应的数字值是2.54166666666667。

将日期所在单元格的格式改为数值就可以查看日期对应的数值。

如何将Excel中的日期时间对应的数值转换为ABAP的日期和时间呢?

由于Excel中将1900-1-1 0:00:00设置为1,而不是设置为0.这样就需要ABAP这边从1899-12-31加上excel中的日期对应的数字来获取相应的SAP中日期。

但是仔细研究发现Excel中存在日期1900-02-29,而SAP中没有这个日期。由于1900年不是闰年,所以不应该有2月29日。

据说这是一个bug,但微软声称修改这个错误带来的坏处要比好处多,所以一直没有修复。

所以当Excel中的日期对应的数值大于59时,应该减去1.

转换代码如下:

              DATA days TYPE i.
              IF cell_content > 59.
                days = cell_content - 1.
              ELSE.
                days = cell_content.
              ENDIF.

              CALL FUNCTION 'FIMA_DATE_CREATE'
                EXPORTING
                  i_date          = '18991231'
*                 I_FLG_END_OF_MONTH            = ' '
*                 I_YEARS         = 0
*                 I_MONTHS        = 0
*                 I_DAYS          = 0
                  i_calendar_days = days
*                 I_SET_LAST_DAY_OF_MONTH       = ' '
                IMPORTING
                  e_date          = <any>
*                 E_FLG_END_OF_MONTH            =
*                 E_DAYS_OF_I_DATE              =
                .

 

标签:00,EXCEL,Excel,ABAP,days,日期,对应,1900
From: https://www.cnblogs.com/weixiaopeng/p/17089945.html

相关文章

  • 推荐一个跨平台支持Word, Excel, CSV, Email等30多种格式的操作库
    更多开源项目请查看:一个专注推荐优秀.Net开源项目的榜单在我们日常项目开发中,经常需要解析操作文档,比如Office文档、Email文件、PDF、Xml、图片、Mp3等音频文件,操作Offi......
  • vite + vue3 + js + xlsx 导出excel
    安装依赖 1npminstallxlsx--save 使用版本  封装js/*导出excel文件*//***导出excel文件实现思路分析**1.通过XLSX插件的XLSX.utils.book_new......
  • Java8新特性 - Lambda表达式 - Stream API - 时间日期 API
    1.Lambda表达式基础语法1.1定义函数式接口packagecom.yq.demo;/***Lambda表达式需要“函数式接口”的支持*函数式接口:接口中只有一个抽象方法的接口,称为函数式......
  • 「趣学前端」实现读取excel文件内容小功能
    前言我们在做业务需求的时候,会遇到展示表格的页面,如果只有一个表格,我们可以直接把内容填充到我们的代码中,有时候业务需要不同的分类展示不同的表格,而表格内容是静态的,这类需......
  • Date型日期比较大小
    compareTo(Datedate)date实现了Comparable接口调用compareTo(Datedate)方法可以比较大小。intres=date1.compareTo(date2),相等则返回0,date1大返回1,否则返回-1。......
  • DateUtils日期工具类的封装
    DateUtils日期工具类的封装1.字符串转化为util.Date2.util.Date转化为sql.Date3.util.Date转化为字符串样式packagecom.qf.person;importjava.text.ParseExcepti......
  • Excel函数学习
    1.单条件求和=SUMIF(条件区域,求和条件,实际求和区域)2.多条件求和=SUMIFS(需要求和区域,条件区域1,求和条件1,条件区域2,求和条件2,......)3.单元格所在行位置=ROW(单......
  • python pandas设置excel列宽、缩放比例
    pandas设置excel列宽、缩放比例文件存在file_path='保存的文件路径'sheet_name='数据在Excel的sheet名'result=pd.DataFrame()withpd.ExcelWriter(file_path,......
  • python mysql直接导出excel文件
    importpymysqlimportxlwt#数据库连接对象conn=pymysql.connect(host='124.71.72.144',port=3306,user='root',password="gClUjjCh2tozZY23o",db="pay",chars......
  • Microsoft Office Excel 打开部分文件程序崩溃
    Win10系统在最近一次系统更新后,Excel打开一些文件后,Excel软件会直接奔溃。查了很久没有查到原因,最后准备卸载重装。在卸载的时候发现安装程序里面存在Microsoft365。果断......