第一篇:OLE对EXCEL操作总结
方法用例
*&-------* *& 本程序总结了常用的ABAP对EXCEL的操作,包括如下子例程 *& 方法名 方法说明 *&(1)create_excel 创建excel *&(2)insert_row 插入行 *&(3)fill_cell 填充单元格 *&(4)columnwidth 调整列宽 *&(5)create_sheet 创建sheet *&(6)copy_sheet_all sheet复制 *&(7)copy_sheet_area sheet区域复制 *&(8)copy_cells 复制单元格
*&(9)range_borders 边框粗细 *&(10)row_color 行颜色 *&(11)preview_excel 预览 *&(12)free_object 释放对象 *&(13)close_excel 关闭excel *&(14)download_excel_fromserver 从服务器下载excel模板(进入模板事务代码SMW0)
*&(15)open_excel_hide 隐蔽打开excel *&(16)open_excel 打开excel *&(17)open_excel_sheet 打开指定的excel的sheet *&(18)open_excel_by_sheet 打开sheet *&(19)select_range 选择范围 *&(20)clear_data 清除数据 *&(21)merge_cells 合并单元格 *&(22)process_indcator 进度指示 *&(23)delete_row 删除行 *&(24)add_comment 添加注释 *&(25)hide_columns 隐藏列 *&(26)delete_columns 删除列 *&(27)hide_row 隐藏行 * 保护工作区 lock_unlock_excel :未完成 * 保护整个工作表 lock_sheet : 未完成
*& 本示例程序作为ABAP对EXCEL操作的参考,可以根据需要做适当的调整 *&-------* REPORT zdealexcel.TYPE-POOLS ole2.TABLES sscrfields.DEFINE m_message.case sy-subrc.when '0'.when others.message e000(zmeg)with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.endcase.END-OF-DEFINITION.DATA: application TYPE ole2_object, “excel object workbook TYPE ole2_object, ”excel workbook objcet sheet TYPE ole2_object, “workbook sheet object columns TYPE ole2_object, ”sheet col objcet rows TYPE ole2_object, “sheet row objcet range TYPE ole2_object, ”range range1 TYPE ole2_object, “range1 font TYPE ole2_object, ”font cell TYPE ole2_object, “cell cell1 TYPE ole2_object, ”cell1 sheet1 TYPE ole2_object, “workbook sheet object borders TYPE ole2_object.”borders
DATA: index TYPE i VALUE 0.*定义模板下载到本地保存的全名称
DATA: p_down_file LIKE sapb-sappfad.“定义模板下载到本地保存的全名称
*演示excel操作
SELECTION-SCREEN BEGIN OF LINE.SELECTION-SCREEN: PUSHBUTTON 01(12)but0 USER-COMMAND cli0, PUSHBUTTON 20(15)but2 USER-COMMAND cli2.SELECTION-SCREEN END OF LINE.*导入数据块
SELECTION-SCREEN BEGIN OF BLOCK status2 WITH FRAME TITLE text-f02.SELECTION-SCREEN BEGIN OF LINE.SELECTION-SCREEN COMMENT 1(20)text-002.PARAMETERS: p_file LIKE rlgrap-filename.SELECTION-SCREEN END OF LINE.SELECTION-SCREEN END OF BLOCK status2.*导出数据块
SELECTION-SCREEN BEGIN OF BLOCK status3 WITH FRAME TITLE text-f03.SELECTION-SCREEN BEGIN OF LINE.SELECTION-SCREEN COMMENT 1(20)text-003.PARAMETERS: p_down LIKE rlgrap-filename.SELECTION-SCREEN: PUSHBUTTON 75(20)but1 USER-COMMAND cli1.SELECTION-SCREEN END OF LINE.SELECTION-SCREEN END OF BLOCK status3.INITIALIZATION.CREATE OBJECT application 'excel.APPLICATION'.but0 = '演示excel操作'.”初始化导出button显示名称 but1 = '导出'.“初始化导出button显示名称 but2 = '从模板导出excel'.”从模板导出excel
*-------------------------设置文件上载-------------------------AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.CALL FUNCTION 'WS_FILENAME_GET' EXPORTING def_path = p_file mask = ',*.*.' mode = 'O' title = text-f01 IMPORTING filename = p_file EXCEPTIONS inv_winsys = 1 no_batch = 2 selection_cancel = 3 selection_error = 4 OTHERS = 5.CHECK sy-subrc = 0 AND NOT p_file IS INITIAL.*-------------------------设置文件下载-------------------------AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_down.CALL FUNCTION 'WS_FILENAME_GET' EXPORTING def_path = p_down mask = ',*.xls,*.xls.' mode = 'S' title = text-f02 IMPORTING filename = p_down EXCEPTIONS inv_winsys = 1 no_batch = 2 selection_cancel = 3 selection_error = 4 OTHERS = 5.CHECK sy-subrc = 0 AND NOT p_down IS INITIAL.* AT SELECTION-SCREEN.IF sscrfields-ucomm EQ 'CLI1'.IF p_down IS INITIAL.MESSAGE e804(zdev).ELSE.p_down_file = p_down.PERFORM download_excel_fromserver USING 'ZHRI0004' p_down_file.“下载模板到本地
MESSAGE i600(zdev)WITH '模板导出成功'.ENDIF.ELSEIF sscrfields-ucomm EQ 'ONLI'.IF p_file IS INITIAL.MESSAGE e803(zdev).ENDIF.ELSEIF sscrfields-ucomm EQ 'CLI0'.PERFORM demo_forms.ELSEIF sscrfields-ucomm EQ 'CLI2'.PERFORM demo_forms_server USING p_file.ENDIF.START-OF-SELECTION.PERFORM open_excel_hide USING p_file.PERFORM close_excel.PERFORM open_excel USING p_file.PERFORM close_excel.PERFORM open_excel_sheet USING 'sheet2' p_file.DO 10 TIMES.PERFORM insert_row USING 1.PERFORM fill_cell USING 1 1 0 'e'.PERFORM fill_cell USING 1 2 0 'f'.PERFORM fill_cell USING 1 3 0 'g'.index = index + 1.ENDDO.PERFORM close_excel.PERFORM free_object.*&-------* *& Form demo_forms_server *&-------* * 从SMW0下载excel模板
*--------* *-->P_FILE excel本地路径
*--------* FORM demo_forms_server USING p_file.p_down_file = p_file.PERFORM process_indcator USING '程序正在下载模板' 0.PERFORM download_excel_fromserver USING 'ZHRI0004' p_down_file.PERFORM process_indcator USING '程序正在初始化OLE控件' 0.PERFORM process_indcator USING '程序正在打开excel文档' 0.PERFORM open_excel_sheet USING '处分处罚信息批导入' p_file.DO 10 TIMES.PERFORM insert_row USING 5.PERFORM fill_cell USING 5 1 0 'e'.PERFORM fill_cell USING 5 2 0 'f'.PERFORM fill_cell USING 5 3 0 'g'.index = index + 1.ENDDO.PERFORM clear_data USING 1 6 2 7.PERFORM merge_cells USING 1 6 2 7.PERFORM add_comment USING 8 1 'OK'.PERFORM close_excel.PERFORM free_object.ENDFORM.”demo_forms_server
*&-------* *& Form demo_forms *&-------* * 演示用form *--------* FORM demo_forms.PERFORM create_excel.DO 10 TIMES.PERFORM insert_row USING 1.PERFORM fill_cell USING 1 1 0 'a'.PERFORM fill_cell USING 1 2 0 'b'.PERFORM fill_cell USING 1 3 0 'c'.index = index + 1.ENDDO.PERFORM columnwidth USING 'A:C' ''.PERFORM create_sheet.PERFORM create_sheet.PERFORM copy_sheet_all.PERFORM copy_sheet_area.PERFORM copy_cells.PERFORM range_borders.PERFORM row_color USING 1.PERFORM preview_excel.PERFORM del_sheet USING 'sheet2'.PERFORM free_object.ENDFORM.“demo_forms
*&-------* *&(1)Form create_excel *&-------* * 创建excel *--------* FORM create_excel.IF sy-subrc <> 0.MESSAGE 'EXCEL ERROR' TYPE 'S' DISPLAY LIKE 'E'.STOP.ENDIF.CALL METHOD OF application 'WORKBOOKS' = workbook.SET PROPERTY OF application 'VISIBLE' = 1.SET PROPERTY OF application 'SHEETSINNEWWORKBOOK' = 1.CALL METHOD OF workbook 'ADD' = sheet.CALL METHOD OF sheet 'ACTIVE'.ENDFORM.”create_excel
*&-------* *&(2)Form insert_row *&-------* * 根据行号插入一行
*--------* *-->I_ROW 行号
*--------* FORM insert_row USING i_row.CALL METHOD OF application 'ROWS' = rows EXPORTING #1 = i_row.CALL METHOD OF rows 'INSERT'.ENDFORM.“insert_row
*&-------* *&(3)Form fill_cell *&-------* * 填充单元格
*--------* *-->I_ROW 行号 *-->I_COL 列号 *-->BOLD 是否加粗 *-->P_VALUE 值
*--------* FORM fill_cell USING i_row i_col bold p_value.CALL METHOD OF application 'CELLS' = cell EXPORTING #1 = i_row #2 = i_col.SET PROPERTY OF cell 'VALUE' = p_value.SET PROPERTY OF cell 'HORIZONTALALIGNMENT' = 2.GET PROPERTY OF cell 'FONT' = font.SET PROPERTY OF font 'BOLD' = bold.SET PROPERTY OF font 'COLORINDEX' = 41.CALL METHOD OF cell 'BORDERS' = borders EXPORTING #1 = '2'.SET PROPERTY OF borders 'LINESTYLE' = '0'.SET PROPERTY OF borders 'WEIGHT' = 0.ENDFORM.”fill_cell
*&-------* *&(4)Form columnwidth *&-------* * 设置列宽为自动或是固定值
*--------* *-->COLNUM 列号,可以为单个列或是多个列 *-->WIDTH 列宽值
*--------* FORM columnwidth USING colnum width.CALL METHOD OF application 'COLUMNS' = columns EXPORTING #1 = colnum.IF width = ''.CALL METHOD OF columns 'AutoFit'.ELSE.SET PROPERTY OF columns 'COLUMNWIDTH' = width.ENDIF.ENDFORM.“columnwidth
*&-------* *&(5)Form create_sheet *&-------* * 创建sheet *--------* FORM create_sheet.CALL METHOD OF application 'sheets' = sheet.CALL METHOD OF sheet 'ADD'.ENDFORM.”create_sheet
*&-------* *&(6)Form copy_sheet_all *&-------* * 复制sheet全部内容到另一个sheet *--------* FORM copy_sheet_all.CALL METHOD OF application 'Sheets' = sheet EXPORTING #1 = 'Sheet1'.CALL METHOD OF sheet 'Cells' = cell.CALL METHOD OF cell 'copy'.CALL METHOD OF application 'Sheets' = sheet EXPORTING #1 = 'Sheet3'.CALL METHOD OF application 'Range' = range EXPORTING #1 = 'A1'.CALL METHOD OF range 'PasteSpecial'.ENDFORM.“copy_sheet_all
*&-------* *&(7)Form copy_sheet_area *&-------* * 复制sheet部分内容到另一个sheet *--------* FORM copy_sheet_area.CALL METHOD OF application 'Sheets' = sheet EXPORTING #1 = 'Sheet1'.CALL METHOD OF sheet 'Range' = range EXPORTING #1 = 'A1' #2 = 'B10'.CALL METHOD OF range 'copy'.CALL METHOD OF application 'Sheets' = sheet1 EXPORTING #1 = 'Sheet2'.CALL METHOD OF sheet1 'Range' = range1 EXPORTING #1 = 'A1' #2 = 'B10'.CALL METHOD OF range1 'PasteSpecial'.ENDFORM.”copy_sheet_area
*&-------* *&(8)Form copy_cells *&-------* * 在一个sheet内复制单元格
*--------* FORM copy_cells.CALL METHOD OF application 'Sheets' = sheet EXPORTING #1 = 'Sheet1'.CALL METHOD OF sheet 'Range' = range EXPORTING #1 = 'A1' #2 = 'B10'.CALL METHOD OF range 'copy'.CALL METHOD OF sheet 'Range' = range1 EXPORTING #1 = 'A12' #2 = 'B22'.CALL METHOD OF range1 'PasteSpecial'.ENDFORM.“copy_cells
*&-------* *&(9)Form range_borders *&-------* * 指定range加边框
*--------* FORM range_borders.CALL METHOD OF application 'Range' = range EXPORTING #1 = 'A1' #2 = 'B10'.CALL METHOD OF range 'BORDERS' = borders.SET PROPERTY OF borders 'LINESTYLE' = 1.SET PROPERTY OF borders 'WEIGHT' = 10.ENDFORM.”range_borders
*&-------* *&(10)Form row_color *&-------* * 设定行背景色
*--------* *-->I_ROW 行号
*--------* FORM row_color USING i_row.CALL METHOD OF application 'ROWS' = rows EXPORTING #1 = i_row.GET PROPERTY OF rows 'Interior' = font.SET PROPERTY OF font 'ColorIndex' = '10'.ENDFORM.“row_color *&-------* *&(11)Form preview_excel *&-------* * 预览excel *--------* FORM preview_excel.SET PROPERTY OF application 'VISIBLE' = 1.CALL METHOD OF sheet 'PRINTPREVIEW'.* m_message.ENDFORM.”preview_excel
*&-------* *&(12)Form free_object *&-------* * 释放object *--------* FORM free_object.FREE OBJECT font.FREE OBJECT range.FREE OBJECT range1.FREE OBJECT columns.FREE OBJECT rows.FREE OBJECT cell.FREE OBJECT cell1.FREE OBJECT sheet1.FREE OBJECT sheet.FREE OBJECT workbook.FREE OBJECT application.ENDFORM.“free_object
*&-------* *&(13)Form close_excel *&-------* * 关闭excel并保存
*--------* FORM close_excel.CALL METHOD OF workbook 'Save'.CALL METHOD OF workbook 'Close' EXPORTING #1 = 0.CALL METHOD OF application 'Quit'.ENDFORM.”close_excel
*&-------* *&(14)Form download_excel_fromserver *&-------* * 从服务器下载excel模板
*--------* *-->P_OBJID 模板名称 *-->P_DEST 存档路径
*--------* FORM download_excel_fromserver USING p_objid LIKE www.xiexiebang.comment *&-------* * 添加注释
*--------* *-->I_ROW 行号 *-->I_COL 列号 *-->P_TEXT 注释内容
*--------* FORM add_comment USING i_row i_col p_text.CALL METHOD OF application 'Cells' = cell EXPORTING #1 = i_row #2 = i_col.CALL METHOD OF cell 'AddComment' = cell1.CALL METHOD OF cell1 'Text' EXPORTING #1 = p_text.CALL METHOD OF cell1 'Shape' = font.SET PROPERTY OF font 'Width' = '20'.SET PROPERTY OF font 'Height' = '20'.ENDFORM.“add_comment
*&-------* *&(25)Form hide_columns *&-------* * 隐藏列
*--------* *-->COLNUM 输入列号
*--------* FORM hide_columns USING colnum.CALL METHOD OF application 'COLUMNS' = columns EXPORTING #1 = colnum.SET PROPERTY OF columns 'Hidden' = 'true'.ENDFORM.”hide_columns
*&-------* *&(26)Form delete_columns *&-------* * 删除列
*--------* *-->COLNUM 输入列号
*--------* FORM delete_columns USING colnum.CALL METHOD OF application 'COLUMNS' = columns EXPORTING #1 = colnum.CALL METHOD OF columns 'DELETE'.ENDFORM.“delete_columns
*&-------* *&(27)Form hide_row *&-------* * 隐藏行
*--------* *-->I_ROW 输入行号
*--------* FORM hide_row USING i_row.CALL METHOD OF application 'ROWS' = rows EXPORTING #1 = i_row.SET PROPERTY OF rows 'Hidden' = 'true'.ENDFORM.”hide_row 2 注意事项 2.1 Sheet名称
Sheet名为中文时,在调用sheet对象时往往会调用不到,用英文字母不存在该问题。2.2 释放对象
程序结束时需要释放对象,否则Excel有可能无法关闭。释放对象代码如下: FORM free_object.FREE OBJECT font.FREE OBJECT range.FREE OBJECT range1.FREE OBJECT columns.FREE OBJECT rows.FREE OBJECT cell.FREE OBJECT cell1.FREE OBJECT sheet1.FREE OBJECT sheet.FREE OBJECT workbook.FREE OBJECT application.ENDFORM.
第二篇:SAP ABAP OLE操作EXCEL小结
ABAP直接操作EXCEL实现数据处理。这里是用OLE实现操作EXCEL的。现在还有 DOI操作EXCEL等方法。以后用到再做介绍。此处不是直接生成EXCEL文件,而是从 服务器已经上传的EXCEL模板中下载模板然后打开修改实现数据保存。也可以直接创建 新的EXCEL文件往里面传递数据并设置格式。这里不做介绍。
1.采用模板文件实现。上传EXCEL模板 T-code:SMW0
注意选择的是binary data(对于EXCEL模版上传)如果是HTML上传,对于存于www.xiexiebang.comtl_error = 1 error_no_gui = 2 not_supported_by_gui = 3 OTHERS = 4.IF lc_fullpath = ''.MESSAGE '不能打开excel' TYPE 'E'.ENDIF.IF sy-subrc = 0.p_dest = lc_fullpath.* concatenate p_objid '.XLS' into ls_objnam.CONDENSE ls_objnam NO-GAPS.SELECT SINGLE relid objid FROM wwwdata INTO CORRESPONDING FIELDS OF lo_objdata WHERE srtf2 = 0 AND relid = 'MI' AND objid = p_objid.“先尝试取一下,接着检查是否取到制定模版问件 *检查表wwwdata中是否存在所指定的模板文件
IF sy-subrc NE 0 OR lo_objdata-objid EQ space.“如果不存在,则给出错误提示
CONCATENATE '模板文件' ls_objnam '不存在' INTO ls_errtxt.MESSAGE ls_errtxt TYPE 'I'.ENDIF.ls_destination = p_dest.”保存路径
*如果存在,调用DOWNLOAD_WEB_OBJECT 函数下载模板到路径下
CALL FUNCTION 'DOWNLOAD_WEB_OBJECT' EXPORTING key = lo_objdata destination = ls_destination IMPORTING rc = li_rc.IF li_rc NE 0.CONCATENATE '模板文件:' ls_objnam '下载失败' INTO ls_errtxt.MESSAGE ls_errtxt TYPE 'E'.ENDIF.fname = ls_destination.ENDIF.ENDFORM.“fm_excel
3.下载完模板后,打开模板文件,填入数据 DATA: EXCEL TYPE ole2_object, WORKBOOK TYPE ole2_object, SHEET TYPE ole2_object.CREATE OBJECT excel 'EXCEL.APPLICATION'.”Create EXCEL OBJECT IF sy-subrc NE 0.EXIT.ENDIF.SET PROPERTY OF excel 'Visible' = 0.“1/0 是否显示EXCEL CALL METHOD OF excel 'Workbooks' = workbook.CALL METHOD OF workbook 'Open' EXPORTING #1 = fname..”打开上面下载路径下的excel文件
CALL METHOD OF excel 'Sheets' = sheet EXPORTING #1 = 1.CALL METHOD OF sheet 'Select'.CALL METHOD OF sheet 'ACTIVATE'.“sheet 激活 DATA SHEETNAME TYPE STRING.SHEETNAME = 'TESTTESTTEST'.SET PROPERTY OF sheet 'NAME' = sheetname.“设定sheet名称 *此处假设内表itab 中已经存在需要写入excel中的数据 *并且假如从模板的第7行开始插入数据 DATA ITAB LIKE STANDARD TABLE OF SFLIGHT.DATA WA LIKE SFLIGHT.DATA: TAB TYPE I,BOD(5)TYPE C.SELECT * INTO TABLE ITAB FROM SFLIGHT UP TO 8 ROWS.LOOP AT itab INTO wa.tab = sy-tabix + 6.*在excel中插入一行
PERFORM excel_row_insert USING sheet tab 1.*填充所插入行的每个单元格的数据
PERFORM fill_range USING tab 1 wa-t01.PERFORM fill_range USING tab 2 wa-t02.PERFORM fill_range USING tab 3 wa-t03.PERFORM fill_range USING tab 4 wa-t04.PERFORM fill_range USING tab 5 wa-t05.PERFORM fill_range USING tab 6 wa-t06.ENDLOOP.*设置EXCEL中所插入的数据行边框线格式为黑色有边框
bod = tab.CONDENSE bod NO-GAPS.CONCATENATE 'A6:F' bod INTO bod.PERFORM borderrange USING excel bod.PERFORM sub_excel_save.“保存excel数据
*&-------* *& Form sub_excel_save *&-------* * text *--------* FORM sub_excel_save.GET PROPERTY OF excel 'ActiveSheet' = sheet.“获取活动SHEET FREE OBJECT sheet.FREE OBJECT workbook.GET PROPERTY OF excel 'ActiveWorkbook' = workbook.CALL METHOD OF workbook 'SAVE'.SET PROPERTY OF excel 'Visible' = 1.”是否显示EXCEL 此处显示不退出 * SET PROPERTY OF excel 'Visible' = 1.* CALL METHOD OF workbook 'CLOSE'.* CALL METHOD OF excel 'QUIT'.注释部分为不显示直接退出 FREE OBJECT sheet.FREE OBJECT workbook.FREE OBJECT excel.ENDFORM.“save_book
*&-------* *& 向excel中的指定行插入N行
*&-------* FORM excel_row_insert USING lcobj_sheet lc_row lc_count.DATA lc_range TYPE ole2_object.DATA h_borders TYPE ole2_object.DO lc_count TIMES.CALL METHOD OF lcobj_sheet 'Rows' = lc_range EXPORTING #1 = 6.CALL METHOD OF lc_range 'Copy'.“COPY第6行插入一个新行
CALL METHOD OF lcobj_sheet 'Rows' = lc_range EXPORTING #1 = lc_row.CALL METHOD OF lc_range 'Insert'.CALL METHOD OF lc_range 'ClearContents'.”是否需要清空Cell ENDDO.ENDFORM.“excel_row_insert *&-------* *& Form fill_range *&-------* * text 填充EXCEL 单元格
*--------* *-->VALUE(F_ROW)text *-->VALUE(F_COL)text *-->VALUE(F_VALUE)text *--------* FORM fill_range USING value(f_row)value(f_col)value(f_value).DATA: row TYPE i, col TYPE i.row = f_row.col = f_col.CALL METHOD OF excel 'CELLS' = cell EXPORTING #1 = row #2 = col.SET PROPERTY OF cell 'VALUE' = f_value.ENDFORM.”fill_range *&-------* *& Form borderrange *&-------* * text:设置EXCEL中所插入的数据行边框线格式 *--------* *-->LCOBJ_EXCEL text *-->RANGE text *--------* FORM borderrange USING lcobj_excel range.DATA: lc_cell TYPE ole2_object , lc_borders TYPE ole2_object.CALL METHOD OF lcobj_excel 'RANGE' = lc_cell EXPORTING #1 = range.DO 4 TIMES.CALL METHOD OF lc_cell 'BORDERS' = lc_borders EXPORTING #1 = sy-index.SET PROPERTY OF lc_borders 'LineStyle' = '1'.SET PROPERTY OF lc_borders 'WEIGHT' = 2.“4=max SET PROPERTY OF lc_borders 'ColorIndex' = '1'.ENDDO.FREE OBJECT lc_borders.FREE OBJECT lc_cell.ENDFORM.”borderrange
暂时只用到了这么多,还有ABAP设置EXCEL字体,对齐方式等功能。什么时候用到了再 做研究。希望对大家有所帮助。
第三篇:ABAP使用OLE方法总结
SAP ABAP OLE 操作EXCEL小结
ABAP直接操作EXCEL实现数据处理。这里是用OLE实现操作EXCEL的。现在还有
DOI操作EXCEL等方法。以后用到再做介绍。此处不是直接生成EXCEL文件,而是从
服务器已经上传的EXCEL模板中下载模板然后打开修改实现数据保存。也可以直接创建
新的EXCEL文件往里面传递数据并设置格式。这里不做介绍。
1.采用模板文件实现。上传EXCEL模板
T-code:SMW0 WebRFC 的二进制数据 包:MI
点击
模板数据保存在系统表www.xiexiebang.comtl_error = 1 error_no_gui = 2 not_supported_by_gui = 3 OTHERS = 4.IF lc_fullpath = “".MESSAGE ”不能打开excel“ TYPE ”E“.ENDIF.IF sy-subrc = 0.p_dest = lc_fullpath.* concatenate p_objid ”.XLS“ into ls_objnam.CONDENSE ls_objnam NO-GAPS.SELECT SINGLE relid objid FROM wwwdata INTO CORRESPONDING FIELDS OF lo_objdata WHERE srtf2 = 0 AND relid = ”MI“ AND objid = p_objid.*检查表wwwdata中是否存在所指定的模板文件
IF sy-subrc NE 0 OR lo_objdata-objid EQ space.“如果不存在,则给出错误提示
CONCATENATE ”模板文件“ ls_objnam ”不存在“ INTO ls_errtxt.MESSAGE ls_errtxt TYPE ”I“.ENDIF.ls_destination = p_dest.”保存路径
*如果存在,调用DOWNLOAD_WEB_OBJECT 函数下载模板到路径下
CALL FUNCTION ”DOWNLOAD_WEB_OBJECT“ EXPORTING key = lo_objdata destination = ls_destination IMPORTING rc = li_rc.IF li_rc NE 0.CONCATENATE ”模板文件:“ ls_objnam ”下载失败“ INTO ls_errtxt.MESSAGE ls_errtxt TYPE ”E“.ENDIF.fname = ls_destination.ENDIF.ENDFORM.”fm_excel
3.下载完模板后,打开模板文件,填入数据
CREATE OBJECT excel “EXCEL.APPLICATION”.“Create EXCEL OBJECT IF sy-subrc NE 0.EXIT.ENDIF.SET PROPERTY OF excel ”Visible“ = 0.”1/0 是否显示EXCEL
CALL METHOD OF excel “Workbooks” = workbook.CALL METHOD OF workbook “Open” EXPORTING #1 = fname..“打开上面下载路径下的excel文件
CALL METHOD OF excel ”Sheets“ = sheet EXPORTING #1 = 1.CALL METHOD OF sheet ”Select“.CALL METHOD OF sheet ”ACTIVATE“.“sheet 激活
SET PROPERTY OF sheet ”NAME“ = sheetname.“设定sheet名称
*此处假设内表itab 中已经存在需要写入excel中的数据
*并且假如从模板的第7行开始插入数据
LOOP AT itab INTO wa.tab = wa-tabix + 6.*在excel中插入一行
PERFORM excel_row_insert USING sheet tab 1.*填充所插入行的每个单元格的数据
PERFORM fill_range USING tab 1 wa-t01.PERFORM fill_range USING tab 2 wa-t02.PERFORM fill_range USING tab 3 wa-t03.PERFORM fill_range USING tab 4 wa-t04.PERFORM fill_range USING tab 5 wa-t05.PERFORM fill_range USING tab 6 wa-t06.ENDLOOP.*设置EXCEL中所插入的数据行边框线格式为黑色有边框
bod = tab.CONDENSE bod NO-GAPS.CONCATENATE ”A6:F“ bod INTO bod.PERFORM borderrange USING excel bod.PERFORM sub_excel_save.”保存excel数据
*&-------* *& Form sub_excel_save *&-------* * text *--------* FORM sub_excel_save.GET PROPERTY OF excel “ActiveSheet” = sheet.“获取活动SHEET
FREE OBJECT sheet.FREE OBJECT workbook.GET PROPERTY OF excel “ActiveWorkbook” = workbook.CALL METHOD OF workbook “SAVE”.SET PROPERTY OF excel “Visible” = 1.“是否显示EXCEL 此处显示不退出
* SET PROPERTY OF excel ”Visible“ = 1.* CALL METHOD OF workbook ”CLOSE“.* CALL METHOD OF excel ”QUIT“.注释部分为不显示直接退出
FREE OBJECT sheet.FREE OBJECT workbook.FREE OBJECT excel.ENDFORM.”save_book
*&-------* *& 向excel中的指定行插入N行
*&-------* FORM excel_row_insert USING lcobj_sheet lc_row lc_count.DATA lc_range TYPE ole2_object.DATA h_borders TYPE ole2_object.DO lc_count TIMES.CALL METHOD OF lcobj_sheet “Rows” = lc_range EXPORTING #1 = 6.CALL METHOD OF lc_range “Copy”.“COPY第6行插入一个新行
CALL METHOD OF lcobj_sheet “Rows” = lc_range EXPORTING #1 = lc_row.CALL METHOD OF lc_range “Insert”.CALL METHOD OF lc_range “ClearContents”.“是否需要清空Cell ENDDO.ENDFORM.”excel_row_insert
*&-------* *& Form fill_range *&-------* * text 填充EXCEL 单元格
*--------* *-->VALUE(F_ROW)text *-->VALUE(F_COL)text *-->VALUE(F_VALUE)text *--------* FORM fill_range USING value(f_row)value(f_col)value(f_value).DATA: row TYPE i, col TYPE i.row = f_row.col = f_col.CALL METHOD OF excel “CELLS” = cell EXPORTING #1 = row #2 = col.SET PROPERTY OF cell “VALUE” = f_value.ENDFORM.“fill_range
*&-------* *& Form borderrange *&-------* * text:设置EXCEL中所插入的数据行边框线格式
*--------* *-->LCOBJ_EXCEL text *-->RANGE text *--------* FORM borderrange USING lcobj_excel range.DATA: lc_cell TYPE ole2_object , lc_borders TYPE ole2_object.CALL METHOD OF lcobj_excel ”RANGE“ = lc_cell EXPORTING #1 = range.DO 4 TIMES.CALL METHOD OF lc_cell ”BORDERS“ = lc_borders
EXPORTING #1 = sy-index.SET PROPERTY OF lc_borders ”LineStyle“ = ”1“.SET PROPERTY OF lc_borders ”WEIGHT“ = 2.”4=max SET PROPERTY OF lc_borders “ColorIndex” = “1”.ENDDO.FREE OBJECT lc_borders.FREE OBJECT lc_cell.ENDFORM."borderrange
暂时只用到了这么多,还有ABAP设置EXCEL字体,对齐方式等功能。什么时候用到了再
做研究。希望对大家有所帮助。
第四篇:操作总结
一:选股
基本面+行业+政策扶持+股价+形态
主要注意事项:
1:选择有资金关注的股
2:筹码集中度高的股
3:均线排列形态良好
4:指标多头或则将要多头
二:操作
操作上要注意大盘是否适合操作来决定,减少操作的随意性,考虑到交易成本,高频操作是否合适。
主要以中线持股,中短结合,波段操作,盘中有机会可以适当T+0,降低持股成本。
盘中热点盘块个股启动时,可以利用短线资金适当参与,要参与龙头股,给机会就参与,不给机会就放弃,坚决不追高。
注意板快轮动。
止损和止赢(浮动)
三金叉买入法,五线顺上第一阳买入,讨饭线持股法,平台突破买入法。
三:复盘
对当天领涨板块和领跌板块重点分析,特别是龙头股。形态好的个股 在底部启动的要重点关注,如果有成交量放出,就可以放入自选股。
信息的收集和解读,找出相关个股,编译成自己的股票资料册。
四:指标类
MACDVOLKDJOBV
五:细节问题
K线组合形态,MACD强势,KDJ形态,OBV背离,量价配合。盘感,经典分时和经典K线组合。
做自己熟悉的个股,股性是否活跃,市场的认可度等因素结合起来,做到手中有股,心中无股,心态和行动要知行合一,不贪婪,不恐惧,纪律是在股市生存的第一原则。
第五篇:数控车床对刀操作
《数控车床对刀操作》说课稿
各位评委老师好:
今天我说课的题目是《数控车床对刀操作》,下面我将从教材,教法,学法,教学过程等几个方面来说这节课。
一、说教材
1、教材内容:
《数控车床加工工艺与编程操作》这门课程是以培养和提高学生在数控加工过程中的工艺分析能力以及能够对中等复杂程度零件进行手工编程为目的进行编写的。数控车床对刀操作章节是学习本门课程的重点内容,要求学生能够熟练掌握对刀的基本概念,对刀的基本方法,学会试切对刀的基本操作要领。
前面我们学习的华中世纪星数控车床操作面板组成部分的内容,已熟悉各按键的作用。能够熟练应用,本节课在此基础上讲述对刀的基本概念,对刀的基本方法及试切对刀的基本操作要领。将为后期实训课题奠定基础。因此,学习并熟练掌握对刀的基本方法及试切对刀的基本操作要领是十分重要的。
2、教学目标
结合本课特点和学生的实际情况,我将本课的教学目标确定如下:
1)知识目标
对刀的基本概念,对刀的基本方法,试切对刀的方法要领。2)能力目标
熟练试切对刀的方法要领,能正确测量并设置刀偏值。培养学生运用所学知识解决问题的能力。提高学生动手操作能力。
3)情感目标
通过引导学生参与解决问题的过程,使学生体验成功的感受,激发学生的学习热情,增强学生自信心。通过动手操作,让学生懂得实践出真知的真理。
3、教学重难点
根据教学目标及在以往的教学过程中,学生普遍反映存在以下的问题:
1、对数控机床的操作面板不熟悉,记不住刀偏表位置,不知道从何下手;
2、有的同学试切之后不知道该往哪个方向退刀,出现对刀坐标值错误的情况。针对这些情况,指定以下重难点:
教学重点:
1、掌握对刀的基本概念
2、掌握试切法对刀的基本方法 教学难点:试切法对刀的过程及其基本方法
在教学过程中,将通过理论讲述和教学演示的方法突出重点,通过教学演示的方法突破难点。
二、教法分析
考虑到我所带班级学生的特点,基础知识薄弱,缺乏良好的学习习惯等因素。我在本节课教学中,主要采用了启发提问法、演示法、小组讨论法等多种教学方法。现场实践操作;教师针对数控机床的操作面板进行讲解,留给学生足够的时间来熟悉、操作机床,由学生进行现场实践操作,以培养学生的实践动手能力。在实习时遇到问题引导他们开动脑筋,积极思考,鼓励同学们之间展开激烈的讨论,可以加深学生对数控加工的理解和提高学习的兴趣。
三、说学法
在教学过程中,必须使学生认识到自己的主体作用。在设计学习方法时,我结合目前中职生认识事物的特点,本课指导学生采用自主学习和协作学习等方法,帮助学生在不断探索,不断交流、不断评价中自然达成学习目标,转变学习方式,提高学习能力。自主学习意在于培养学生自主探究的能力,例如:要求学生自行总结对刀的规律性,2
经常会出现的问题,小组成员之间互相交流,便于学生记忆。启发学生自主学习,自主探究。协作学习意在培养学生的合作交流能力以及团队合作的意识,例如:学生反映对刀操作步骤繁琐,将学生分为5人一组,自由选择尺寸进行对刀,分组讨论,写出经常易错误的地方,然后自由讨论并实践操作的方式将问题解决,老师加以解释。从中发现问题加深学生的印象。
四、教学过程
1、复习旧课,导入新课(采用启发提问和演示观察法)
通过观察实训车间数控车床,提出问题:
1)华中世纪星数控车床面板由哪几部分组成?学生回答。2)各部分有什么功能?学生回答。
此时我则提问对刀操作怎么完成呢?这样,自然而然,就引出所要讲授的新内容----数控车床对刀操作(采用“启发提问和观察法”导入新课,不仅可以复习前面的内容而且还抓住学生对新知识的好奇心理,充分调动学生的注意力。)
2、讲授新课(演示法和分组讨论法)这节课讲解三部分内容。第一部分教师讲解(讲解法)通过理论讲解让同学们对数控对刀的概念,对刀的方法,对刀的必要性有一定的了解。
第二部分教师边示范边讲解(演示法)
指导教师在机床操作面板上面对数控对刀的整个过程进行操作,让同学们对于对刀有个直观的了解,并记下对刀所要求的操作步骤有哪些,会出现的问题有哪些。第三部分应用练习(小组讨论法)
将学生分为八组(学生分组时,好、中、差搭配),各组进行比赛。通过对刀训练,主要是检验学生对本节课知识的掌握程度。我在 3
此期间,可做巡回指导。练习完成之后我则给予评价和总结,这样学生的成就感便得到了肯定。本节课我安排在数控车间,采用了机床实际操作与电脑仿真同时进行的方法。目的是为了增强学生的感性认识、加深对知识的理解和记忆、激发学生的学习兴趣、培养学生实践操作的能力。
3、小结:
总结本节课的重点和难点,评价学生对知识的掌握情况,并指出在编程及操作中应该注意的问题。
利用几分钟时间总结本节课的内容,再次强调本课的重难点,要求学生课后一定要花时间消化,复习,对于需要记忆的一定要记忆并指出操作中一定要注意的问题。同时留出问题:内孔对刀怎么对?刀具怎么安装,操作过程中要注意哪些问题?要求学生课后思考,为下节课做好铺垫。4.布置作业
要求学生编写一段简单的零件加工程序,要求程序书写一定要规范,并且要将自己写的程序输入机床,对刀之后进行加工。
五、板书设计
1、对刀的基本概念
2、刀具的装夹
3、对刀的基本方法
4、外圆刀试切法对刀示范讲解
5、机床的清洁与保养
六、教学反思
本节课内容,我在数控10(1)班已上过,在教学的过程中,我发现对刀步骤学生有点晕,有的同学试切之后不知道该往哪个方向退刀。其次,在上课环节中,给学生反复练习的时间有点少。