需要通过SAP ABAP中的XML代码在Excel中显示TIme格式

2020-08-14 18:51发布

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

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


我正在通过后台Job通过XML代码生成excel文件,并且通过电子邮件发送了相同的excel。

我想显示时间字段,例如09:34 AM。 通过程序,我将时间值传递为09:30:23,但是当它以excel格式显示时,则应遵循hh:mm AM这样的时间格式。 但是,当我打开Excel时,它显示为09:34:23,但是当我双击该单元格时,它将采用所需的格式,例如09:34 AM。 您能帮我解决这个问题吗?

代码段:

**数据样式
r_style3 = l_document-> create_simple_element(name ='Style'parent = r_styles)。
r_style3-> set_attribute_ns(name ='ID'prefix ='ss'value ='Data2 ')。 r_format = l_document-> create_simple_element(name ='NumberFormat'parent = r_style3)。
r_format-> set_attribute_ns(name ='Format'前缀='ss'值='h:mm AM/PM')。 r_format = l_document-> create_simple_element(name ='Alignment'parent = r_style3)。
r_format-> set_attribute_ns(name ='Vertical'prefix ='ss'value ='Top')。
r_format-> set_attribute_ns( 名称='WrapText'前缀='ss'值='1')。

lv_time ='122523'。
使用编辑掩码'__:__:__'将lv_time写入lv_data。
将lv_data移至l_value。
r_cell = l_document-> create_simple_element(name ='Cell' 父= r_row)。
r_cell-> set_attribute_ns(name ='StyleID'前缀='ss'值='Data2')。
r_data = l_document-> create_simple_element(name ='Data'值= l_value父= r_cell)。
r_data-> set_attribute_ns(name ='Type'prefix ='ss'value ='String')。

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

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


我正在通过后台Job通过XML代码生成excel文件,并且通过电子邮件发送了相同的excel。

我想显示时间字段,例如09:34 AM。 通过程序,我将时间值传递为09:30:23,但是当它以excel格式显示时,则应遵循hh:mm AM这样的时间格式。 但是,当我打开Excel时,它显示为09:34:23,但是当我双击该单元格时,它将采用所需的格式,例如09:34 AM。 您能帮我解决这个问题吗?

代码段:

**数据样式
r_style3 = l_document-> create_simple_element(name ='Style'parent = r_styles)。
r_style3-> set_attribute_ns(name ='ID'prefix ='ss'value ='Data2 ')。 r_format = l_document-> create_simple_element(name ='NumberFormat'parent = r_style3)。
r_format-> set_attribute_ns(name ='Format'前缀='ss'值='h:mm AM/PM')。 r_format = l_document-> create_simple_element(name ='Alignment'parent = r_style3)。
r_format-> set_attribute_ns(name ='Vertical'prefix ='ss'value ='Top')。
r_format-> set_attribute_ns( 名称='WrapText'前缀='ss'值='1')。

lv_time ='122523'。
使用编辑掩码'__:__:__'将lv_time写入lv_data。
将lv_data移至l_value。
r_cell = l_document-> create_simple_element(name ='Cell' 父= r_row)。
r_cell-> set_attribute_ns(name ='StyleID'前缀='ss'值='Data2')。
r_data = l_document-> create_simple_element(name ='Data'值= l_value父= r_cell)。
r_data-> set_attribute_ns(name ='Type'prefix ='ss'value ='String')。

付费偷看设置
发送
4条回答
南山jay
1楼-- · 2020-08-14 19:30

问题已解决。 谢谢您的支持。

zhangjiyang1323
2楼-- · 2020-08-14 19:45

在Excel中可以看到,如果在单元格中输入时间" 09:34:23",则该时间将以这种方式保存在XML 2003中(而不是ss: 由于某种原因而错误使用的Type =" String" ...数字格式不适用于String类型的单元格):

   1899-12-31T09:34:23.000   

(1899-12-31表示" day 0",因为类型Time不 不存在,仅存在DateTime)

(StyleID指的是一种格式正确的样式,例如您使用的样式:'[$-409] h:mm AM/PM; @')

Haoba3210
3楼-- · 2020-08-14 19:39

我不清楚应该怎么解决。 任何线索都会有所帮助。

蓋茨
4楼-- · 2020-08-14 19:35

很抱歉,我无法清楚地解释。 就是这么简单 我重用了我在另一个问题中发布的答案:

我对XML 2003一无所知,但是花了30秒钟才找到您问题的解决方案。 这只是方法问题:创建一个只有一个单元格且时间为" 09:34:23"的工作簿,以相同的时间创建另一个格式为hh:mmAM/PM的工作簿(或您使用的那一个),保存它们 作为XML 2003,比较这两个文件,您将得到答案。 要求您的公司为您安装文件比较器,您需要一个作为开发人员的比较器。 您甚至可以在ABAP中使用标准比较器,该比较器用于比较ABAP源代码的两个版本...

一周热门 更多>