2020-08-20 02:16发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我可以知道如何在abap2xlsx类中使用set_cell方法以确保我的值在excel工作表中位于2个小数位吗? 谢谢。
默认情况下,如果输入数字245,它将显示为" 245"。
使用此完整代码(假设您知道如何添加零件以生成文件),它将出现 例如" 245,00"或" 245.00",具体取决于您的区域设置:
DATA(lo_excel)= NEW zcl_excel()。 DATA(lo_worksheet)= lo_excel-> get_active_worksheet()。 DATA(lo_style)= lo_excel-> add_new_style()。 lo_style-> number_format-> format_code = zcl_excel_style_number_format => c_format_number_00。 lo_worksheet-> set_cell(ip_column = 1 ip_row = 1 ip_style = lo_style-> get_guid()ip_value = 245)。 DATA(lo_writer)= CAST zif_excel_writer(NEW zcl_excel_writer_2007())。 DATA(xstring)= lo_writer-> write_file(lo_excel)。
默认数字格式为" 0.00"?
DATA(lo_style)= lo_excel-> add_new_style()。 lo_style_date->数字格式->格式代码= zcl_excel_style_number_format => c_format_number_00。 lo_worksheet-> set_cell(... ip_style = lo_style-> get_guid()...)
Hi
在传递值之前,请按以下方式使用
或
使用国家/地区设置将默认设置为2个小数位
使用SET COUNTRY选项
,
Venkat
嗨,桑德拉·罗西,
您的代码在这里无效。 语法错误。
有没有人真的可以使用set_cell方法将打包数字默认为2个小数位?
当然有语法错误,我没有提供 完整的代码,我只是解释了使用样式的概念(set_cell(... ip_style = ...))
我的问题是:您是否要使用Excel数字格式" 0.00"? (转到Excel>"首页">"数字">格式列表>"自定义"> 0.00;它也等效于带有2个小数的格式编号)
感谢Sandra Rossi,
我将您的代码修改为如下所示,并且有效!:
FORM fsetcell 使用ip_col类型i ip_row类型zexcel_cell_row ip_value类型any。 xl-colalpha = zcl_excel_common => convert_column2alpha(ip_col)。数据:开始于l,< br>第TYPE i行, l的结尾。 *获取数据类型 DATA: * my_type TYPE p, * my_data TYPE my_type, descr_ref类型参考cl_abap_typedescr。 数据:lo_style_dec2类型参考zcl_excel_style。数据lo_style类型参考zcl_excel。数据lv_style_dec2_guid类型zexcel_cell_style。 清除l。如果ip_row初始。将xl-row移到l-row。 ELSE。将ip_row移到l行。 ENDIF。 < br> descr_ref = cl_abap_typedescr => describe_by_data(ip_value)。 *呼叫方法lo_style-> add_new_style *导出 * ip_guid = zcl_excel_style_number_format => c_format_number_00 * RECEIVING = *。 如果descr_ref-> type_kind ='P'。 "带包装的数字 lo_style_dec2 = lo_excel-> add_new_style()。 lo_style_dec2-> number_format-> format_code = zcl_excel_style_number_format => c_format_number_00。 lv_style_dec2_guid = lo_style_dec2-> get *将公式的默认值设置为excel中的2个小数位。 lo_worksheet-> set_cell( ip_column = xl-colalpha ip_row = l-row ip_value = ip_value" L-value ip_formula =空格"'ROUND(ip_value,2)' ip_abap_type ='P' ip_style = lv_style_dec2_guid" l-style )。 ELSE。 lo_worksheet-> set_cell( ip_column = xl-colalpha ip_row = l-row ip_value = ip_value" L-value ip_formula =空格" ip_formula * ip_style = l-style )。 ENDIF 。 ENDFORM。 " fsetcell
您好,Venkat,
这里受影响的所有数据类型实际上都是'P'小数点2。
问题完全出在ABAP2XLSX set_cell方法上。
我需要知道如何使用ip_style参数或ip_formula将所有货币字段设置为2个小数位。
谢谢
最多设置5个标签!
默认情况下,如果输入数字245,它将显示为" 245"。
使用此完整代码(假设您知道如何添加零件以生成文件),它将出现 例如" 245,00"或" 245.00",具体取决于您的区域设置:
默认数字格式为" 0.00"?
Hi
在传递值之前,请按以下方式使用
< pre> data:lv_var(13)输入p十进制2。 lv_var1 =您的价值。 然后将此lv_var1传递给abap2xlsx或
使用国家/地区设置将默认设置为2个小数位
,
Venkat
嗨,桑德拉·罗西,
您的代码在这里无效。 语法错误。
有没有人真的可以使用set_cell方法将打包数字默认为2个小数位?
当然有语法错误,我没有提供 完整的代码,我只是解释了使用样式的概念(set_cell(... ip_style = ...))
我的问题是:您是否要使用Excel数字格式" 0.00"? (转到Excel>"首页">"数字">格式列表>"自定义"> 0.00;它也等效于带有2个小数的格式编号)
感谢Sandra Rossi,
我将您的代码修改为如下所示,并且有效!:
FORM fsetcell
*将公式的默认值设置为excel中的2个小数位。
使用ip_col类型i
ip_row类型zexcel_cell_row
ip_value类型any。
xl-colalpha = zcl_excel_common => convert_column2alpha(ip_col)。
数据:开始于l,< br>第TYPE i行,
l的结尾。
*获取数据类型
DATA:
* my_type TYPE p,
* my_data TYPE my_type,
descr_ref类型参考cl_abap_typedescr。
数据:lo_style_dec2类型参考zcl_excel_style。
数据lo_style类型参考zcl_excel。
数据lv_style_dec2_guid类型zexcel_cell_style。
清除l。
如果ip_row初始。
将xl-row移到l-row。
ELSE。
将ip_row移到l行。
ENDIF。
< br> descr_ref = cl_abap_typedescr => describe_by_data(ip_value)。
*呼叫方法lo_style-> add_new_style
*导出
* ip_guid = zcl_excel_style_number_format => c_format_number_00
* RECEIVING =
*。
如果descr_ref-> type_kind ='P'。 "带包装的数字
lo_style_dec2 = lo_excel-> add_new_style()。
lo_style_dec2-> number_format-> format_code = zcl_excel_style_number_format => c_format_number_00。
lv_style_dec2_guid = lo_style_dec2-> get
lo_worksheet-> set_cell(
ip_column = xl-colalpha
ip_row = l-row
ip_value = ip_value" L-value
ip_formula =空格"'ROUND(ip_value,2)'
ip_abap_type ='P'
ip_style = lv_style_dec2_guid" l-style
)。
ELSE。
lo_worksheet-> set_cell(
ip_column = xl-colalpha
ip_row = l-row
ip_value = ip_value" L-value
ip_formula =空格" ip_formula
* ip_style = l-style
)。
ENDIF 。
ENDFORM。 " fsetcell
您好,Venkat,
这里受影响的所有数据类型实际上都是'P'小数点2。
问题完全出在ABAP2XLSX set_cell方法上。
我需要知道如何使用ip_style参数或ip_formula将所有货币字段设置为2个小数位。
谢谢
一周热门 更多>