上载带有日期的Excel文件时,它看起来像';41851'';,不是';2014年7月31日&x27;

上载带有日期的Excel文件时,它看起来像';41851'';,不是';2014年7月31日&x27;,excel,abap,webdynpro,Excel,Abap,Webdynpro,在Web Dynpro中为ABAP上载带有日期的Excel文件时,日期看起来像41851,而不是7/31/2014 如何解决此问题?Excel将日期存储为数字。要将该数字显示为您所知道的日期,请将单元格格式化为日期单元格。使用此公式=文本(41851,“yyy-mm-dd”),并且应正确上载日期(您可以将格式字符串更改为您需要的任何格式)。我找到了解决方案: data: lv_data type sy-datum, lv_startdate type sy-datum. lv_s

在Web Dynpro中为ABAP上载带有日期的Excel文件时,日期看起来像
41851
,而不是
7/31/2014


如何解决此问题?

Excel将日期存储为数字。要将该数字显示为您所知道的日期,请将单元格格式化为日期单元格。

使用此公式=文本(41851,“yyy-mm-dd”),并且应正确上载日期(您可以将格式字符串更改为您需要的任何格式)。

我找到了解决方案:

data: lv_data type sy-datum,
      lv_startdate  type sy-datum.

lv_startdate = '19000101'. "starting date(excel parameter)

lv_data = lv_startdate + 41851(the date from excel that we need to convert to normal date) - 2.

write lv_data.

此代码有效,谢谢您的帮助。

Excel中的单元格格式中已经有日期。但是,当我上传到网络dynpro时,它们会像我在问题中所写的那样显示出来。当我将单元格格式的日期完全更改为文本时,它显示为2015年3月20日(例如),然后它就可以工作了。但我不需要在excel中更改日期。并找到一种方法来替换迄今为止的数字。因此,您找到了一种在excel中显示正确日期的方法。从现在开始你有什么问题?如果Web Dynpro中的日期显示不正确,您将不得不更改其中的格式。如果可能,我会这样做。有必要将该数字转换为日期。我试过公式和函数,但没有找到。我在Excel中读到这些数字,我发现:“所有日期都存储为整数,表示从1900年1月1日起到9999年12月31日的天数,存储为1号,存储为2958465。”以及:“42005是2015年1月1日(因为它是1900年1月1日之后的42005天)”请确保单元格的实际值为“7/31/2014”,因为使用格式可能会混淆实际值。在这种情况下,请尝试@ojf建议的公式。