OLE填充EXCEL 多SHEET
"1 设置行高 "参数说明:行/列号、行高/列宽、R-行 C-列
- FORM row_column USING p_r p_width p_type.
- CASE p_type.
- WHEN 'R'. "行高
- CALL METHOD OF gs_excel 'CELLS' = gs_cells EXPORTING # = p_r # = .
- GET PROPERTY OF gs_cells 'rows' = gs_rows.
- SET PROPERTY OF gs_rows 'rowheight' = p_width.
- WHEN 'C'. "列宽
- CALL METHOD OF gs_excel 'CELLS' = gs_cells EXPORTING # = # = p_r.
- GET PROPERTY OF gs_cells 'columns' = gs_columns .
- SET PROPERTY OF gs_columns 'columnwidth' = p_width.
- ENDCASE.
- FREE OBJECT gs_rows.
- FREE OBJECT gs_columns.
- FREE OBJECT gs_cells.
- ENDFORM. " PRM_EXPORT_EXCEL1
"1 设置列宽
- FORM row_column USING p_r p_width p_type.
- CASE p_type.
- WHEN 'R'. "行高
- CALL METHOD OF gs_excel 'CELLS' = gs_cells EXPORTING # = p_r # = .
- GET PROPERTY OF gs_cells 'rows' = gs_rows.
- SET PROPERTY OF gs_rows 'rowheight' = p_width.
- WHEN 'C'. "列宽
- CALL METHOD OF gs_excel 'CELLS' = gs_cells EXPORTING # = # = p_r.
- GET PROPERTY OF gs_cells 'columns' = gs_columns .
- SET PROPERTY OF gs_columns 'columnwidth' = p_width.
- ENDCASE.
- FREE OBJECT gs_rows.
- FREE OBJECT gs_columns.
- FREE OBJECT gs_cells.
- ENDFORM. " PRM_EXPORT_EXCEL1
"设置边框 "第一个单元格X、Y 第二个单元格X、Y、边框(1带边框 0不带)
- FORM merged USING x1 y1 x2 y2 p_linestyle.
- *--Selecting cell area to be merged.
- CALL METHOD OF gs_excel 'Cells' = gs_cell1
- EXPORTING
- # = x1
- # = y1.
- CALL METHOD OF gs_excel 'Cells' = gs_cell2
- EXPORTING
- # = x2
- # = y2.
- CALL METHOD OF gs_excel 'Range' = gs_range
- EXPORTING
- # = gs_cell1
- # = gs_cell2.
- CALL METHOD OF gs_range 'Select'.
- *--Merging
- CALL METHOD OF gs_range 'Merge' .
- GET PROPERTY OF gs_range 'borders' = gs_borders .
- SET PROPERTY OF gs_borders 'weight' = ''.
- SET PROPERTY OF gs_borders 'linestyle' = p_linestyle.
- FREE OBJECT gs_range.
- FREE OBJECT gs_borders.
- ENDFORM. " MERGED
- FORM fill_cell_gs USING p_r1
- p_r2
- p_bold
- p_size
- p_linestyle
- p_value.
- CALL METHOD OF gs_excel 'CELLS' = gs_cells EXPORTING # = p_r1 # = p_r2.
- * 设置被选中单元格的对齐方式
- " && 水平方向 2左对齐,3居中,4右对齐
- SET PROPERTY OF gs_cells 'horizontalAlignment' = .
- "&& 垂直方向 1靠上 ,2居中,3靠下
- SET PROPERTY OF gs_cells 'VerticalAlignment' = .
- "自动换行
- SET PROPERTY OF gs_cells 'WrapText' = .
- "设置边框属性
- GET PROPERTY OF gs_cells 'borders' = gs_borders .
- SET PROPERTY OF gs_borders 'weight' = ''.
- SET PROPERTY OF gs_borders 'linestyle' = p_linestyle.
- "设置字体属性
- CALL METHOD OF gs_cells 'FONT' = gs_font.
- SET PROPERTY OF gs_font 'BOLD' = p_bold. "1:粗体 0:普通字体
- SET PROPERTY OF gs_font 'SIZE' = p_size. "字体大小
- "设置单元格的值
- SET PROPERTY OF gs_cells 'VALUE' = p_value.
- FREE OBJECT gs_font.
- FREE OBJECT gs_borders.
- FREE OBJECT gs_cells.
- g_c1 = g_c1 + .
- ENDFORM.
- FORM prm_export_excel1 .
- DATA:lv_char TYPE string.
- DATA:lv_line TYPE i.
- DATA:lv_date TYPE string.
- DATA:lv_name() TYPE c.
- DATA:lv1 TYPE c,
- lv2 TYPE c,
- lv3 TYPE c,
- lv4 TYPE c.
- DATA:lv_lines TYPE i VALUE .
- CREATE OBJECT gs_excel 'EXCEL.APPLICATION'.
- *设置EXCEL可见
- SET PROPERTY OF gs_excel 'Visible' = .
- *创建工作表
- CALL METHOD OF gs_excel 'Workbooks' = gs_workbook.
- DESCRIBE TABLE gt_zsqm00501 LINES lv_line.
- * 创建sheet并添加到工作表
- SET PROPERTY OF gs_excel 'SHEETSINNEWWORKBOOK' = lv_line. "如需多个sheets,将1改成相应的值
- CALL METHOD OF gs_workbook 'ADD'.
- *如果是已有EXCEL模板则直接打开即可
- * CALL METHOD OF gs_workbook 'OPEN'
- * EXPORTING
- * #1 = 'C:\test.xls'. "EXCEL文件路径
- *选中相应sheet设置名称
- LOOP AT gt_zsqm00501 INTO gs_zsqm00501.
- * SHIFT GS_ZSQM00501-PRUEFLOS LEFT DELETING LEADING '0'.
- CALL METHOD OF gs_excel 'WORKSHEETS' = gs_sheet
- EXPORTING
- # = lv_lines.
- lv_lines = lv_lines + .
- CALL METHOD OF gs_sheet 'ACTIVATE'.
- SET PROPERTY OF gs_sheet 'NAME' = gs_zsqm00501-prueflos.
- FREE OBJECT gs_sheet .
- "参数说明:行/列号、行高/列宽、R-行 C-列
- PERFORM row_column USING: '' 'R', "1 设置行高
- '' 'R',
- '' 'R',
- '' 'R',
- '' 'R',
- '' 'R',
- '' 'R',
- '' 'R',
- '' 'R',
- '' 'R',
- '' 'R'.
- PERFORM row_column USING: '' 'C', "1 设置列宽
- '' 'C',
- '' 'C',
- '' 'C',
- '' 'C'.
- "第一个单元格X、Y 第二个单元格X、Y、边框(1带边框 0不带)
- PERFORM merged USING: ,"行1
- ,"行2
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- .
- SELECT SINGLE butxt INTO g_butxt
- FROM t001
- WHERE bukrs = gs_zsqm00501-werk.
- "参数说明:单元格X、单元格Y、字体(1粗体 0普通字体)、字体大小、边框(1带边框 0不带)、内容
- IF gs_zsqm00501-werk = ''.
- PERFORM fill_cell_gs USING: '广州东凌粮油股份有限公司' ,
- 'Donlinks grain & oil CO.,LTD.'.
- lv_name = '黄新哲'.
- ELSE.
- PERFORM fill_cell_gs USING: '广州植之元油脂实业有限公司',
- 'Guangzhou Green Oil Industrial Co.,Ltd.'.
- lv_name = '文国才'.
- ENDIF.
- CLEAR:lv_char.
- CONCATENATE '''' gs_zsqm00501-pastrterm+() '-' gs_zsqm00501-pastrterm+() '-' gs_zsqm00501-pastrterm+() INTO lv_date.
- CONCATENATE '质检批号:' gs_zsqm00501-zinslot ' 检验批:' gs_zsqm00501-prueflos
- ' 制单日期:' sy-datum+() '-' sy-datum+() '-' sy-datum+() INTO lv_char.
- CONCATENATE '''' gs_zsqm00501-sghth INTO gs_zsqm00501-sghth.
- PERFORM fill_cell_gs USING: "1 1 1 18 0 G_BUTXT ,
- '检 验 单',
- lv_char,
- '物 料 名 称',
- gs_zsqm00501-ktextmat,
- '采 购 订 单',
- gs_zsqm00501-ebeln,
- '检 验 日 期',
- lv_date,
- * 6 2 1 12 1 GS_ZSQM00501-PASTRTERM,
- '供 应 商',
- gs_zsqm00501-name1,
- '抽 样 人',
- gs_zsqm00501-uname,
- '车/船 号',
- gs_zsqm00501-zcarid,
- '抽 样 基 数',
- gs_zsqm00501-zlosmenge,
- '抽样数量',
- gs_zsqm00501-zgesstichpr,
- '执 行 标 准',
- gs_zsqm00501-zstand,
- '纸质合同号',
- gs_zsqm00501-sghth,
- '检 验 项 目',
- '检 验 结 果',
- '检验依据',
- '企 业 标 准',
- '单项评价'.
- g_r1 = .
- LOOP AT gt_zsqm00502 INTO gs_zsqm00502 WHERE prueflos = gs_zsqm00501-prueflos.
- PERFORM row_column USING: g_r1 '' 'R'. "1 设置行高
- PERFORM fill_cell_gs USING:g_r1 gs_zsqm00502-kurztext,
- g_r1 gs_zsqm00502-dxjg,
- g_r1 gs_zsqm00502-pmethode,
- g_r1 gs_zsqm00502-ktx01,
- g_r1 gs_zsqm00502-jywb.
- g_r1 = g_r1 + .
- ENDLOOP.
- PERFORM merged USING:g_r1 g_r1 ,
- g_r1 g_r1 .
- CLEAR:lv_char.
- IF gs_zsqm00501-code = 'A'.
- lv1 = '√'.
- lv_char = '√ 接收 接收,扣款 让步接收 退货'.
- * CONCATENATE LV1 '√ 接收 ' LV2 '接收,扣款 'LV3 '让步接收 ' LV4 '退货' INTO LV_CHAR.
- ELSEIF gs_zsqm00501-code = 'A0'.
- lv2 = '√'.
- lv_char = '接收 √ 接收,扣款 让步接收 退货'.
- ELSEIF gs_zsqm00501-code = 'A1'.
- lv3 = '√'.
- lv_char = '接收 接收,扣款 √ 让步接收 退货'.
- ELSEIF gs_zsqm00501-code = 'R'.
- lv4 = '√'.
- lv_char = '接收 接收,扣款 让步接收 √ 退货'.
- ENDIF.
- PERFORM fill_cell_gs USING: g_r1 '处 理 方 式',
- g_r1 lv_char.
- g_r1 = g_r1 + .
- PERFORM row_column USING: g_r1 '' 'R'. "1 设置行高
- PERFORM fill_cell_gs USING:g_r1 '备注'.
- PERFORM merged USING:g_r1 g_r1 ,
- g_r1 g_r1 .
- PERFORM fill_cell_gs USING:g_r1 gs_zsqm00501-sgtxt.
- g_r1 = g_r1 + .
- PERFORM row_column USING: g_r1 '' 'R'. "1 设置行高
- PERFORM merged USING:g_r1 g_r1 .
- CLEAR:lv_char.
- CONDENSE gs_zsqm00501-usnam NO-GAPS.
- CONDENSE lv_name NO-GAPS.
- CONDENSE gs_zsqm00501-name_qave NO-GAPS.
- CONCATENATE '制单人:' gs_zsqm00501-usnam ' 化验员:' gs_zsqm00501-pruefer"LV_NAME
- ' 审核人:' gs_zsqm00501-name_qave INTO lv_char.
- PERFORM fill_cell_gs USING:g_r1 lv_char.
- GET PROPERTY OF gs_excel 'ACTIVESHEET' = gs_sheet.
- GET PROPERTY OF gs_excel 'ActiveWorkbook' = gs_workbook.
- ENDLOOP.
- CALL METHOD OF gs_workbook 'SAVEAS'
- EXPORTING
- # = gv_file "保存路径
- # = .
- IF sy-subrc = .
- MESSAGE s000 WITH '数据已导出'.
- ELSE.
- MESSAGE s000 WITH '数据导出失败' DISPLAY LIKE 'E'.
- ENDIF.
- *
- CALL METHOD OF gs_workbook 'CLOSE'.
- CALL METHOD OF gs_excel 'QUIT'.
- FREE OBJECT gs_sheet.
- FREE OBJECT gs_workbook.
- FREE OBJECT gs_excel.
- ENDFORM. " FRM_EXCEL_BZYJH
OLE填充EXCEL 多SHEET的更多相关文章
- OLE填充EXCEL
先把基本的FORM写好: 1.行列属性 FORM row_column USING p_r p_width p_type. CASE p_type. WHEN 'R'. "行高 = p_r ...
- (原创)带模板的OLE输出EXCEL
其实带模板的OLE输出EXCEL就是将要输出的EXCEL中一些拥有固定值(如标题,表头行等)的单元格先填充好数据和设置好格式后作为模板上传到SAP 中.这样后续在输出EXCEL时只需从SAP中将模板下 ...
- OLE操作Excel编译错误处理
Excel在公司用的很多,而这个东西我用的不是很好,就想用程序来处理,遇到很多错误.这几天研究了下OLE操作Excel.环境:VS2008 SP1+Excel 2007 加入OLE Type Li ...
- Easypoi实现excel多sheet表导入导出功能
Easypoi简化了开发中对文档的导入导出实现,并不像poi那样都要写大段工具类来搞定文档的读写. 第一步引入Easypoi依赖 <!-- 导出文件工具 EasyPoi实现Excel读写管理测试 ...
- java的poi技术写Excel的Sheet
在这之前写过关于java读,写Excel的blog如下: Excel转Html java的poi技术读,写Excel[2003-2007,2010] java的poi技术读取Excel[2003-20 ...
- Java读取excel指定sheet中的各行数据,存入二维数组,包括首行,并打印
1. 读取 //读取excel指定sheet中的各行数据,存入二维数组,包括首行 public static String[][] getSheetData(XSSFSheet sheet) thro ...
- 【学习】ABAP OLE 对EXCEL的处理
原文:http://blog.sina.com.cn/s/blog_7229b9c00100opx2.html -------------------------------------------- ...
- 2018年,请不要再使用OLE生成EXCEL文件
输出EXCEL文件是ABAP开发工作中的常见需求,为了学习相关技术,我翻译过一篇文章:使用OLE2对象创建EXCEL文件,并且一度乐在其中. 最近几个月,经过与若干EXCEL打印程序的艰苦斗争,以及对 ...
- C# 填充Excel
1.添加引用 Microsoft.Office.Interop.Excel; 2.使用命名空间 using Microsoft.Office.Interop.Excel; 3.填充EXCEL单元格方法 ...
随机推荐
- 实现easyui datagrid在没有数据时显示相关提示内容
本示例实现easyui datagrid加载/查询数据时,如果没有相关记录,则在datagrid中显示没有相关记录的提示信息,效果如下图所示 本实例要实现如下图所示的效果: 本示例easyui版本为1 ...
- Gradle Cheat Sheet
加快编译速度 使用 gradle 2.4 及以上版本 ~/.gradle/gradle.properties 加入如下配置 org.gradle.daemon=true org.gradle.jvma ...
- 定时往oracle插入数据
1创建存储过程 create or replace procedure job_proc isbegininsert into yy (yid) values (sysdate);end; 2创建jo ...
- Java回顾之Spring基础
第一篇:Java回顾之I/O 第二篇:Java回顾之网络通信 第三篇:Java回顾之多线程 第四篇:Java回顾之多线程同步 第五篇:Java回顾之集合 第六篇:Java回顾之序列化 第七篇:Java ...
- 父目录的权限对子目录有没有影响?[Linux]
问题源头: 登录到服务器(实验室分的一个服务器账号)上,想在当前目录下创建一个文件,但提示“文件系统只读”,无法创建文件.通过ls -l 查看当前用户在当前目录的权限,发现具有rwx权限.所以在想会不 ...
- C++函数模板template
一. 问题: 强类型语言要求我们为所有希望比较的类型都实现一个实例 int min(int a, int b) { return a < b ? a : b; } double min(dou ...
- 替换所有字符串,获取url参数值
替换所有的字符串: var newStr = str.replace(/null/g, ""); 获取url参数值 <script type="text/javas ...
- Windows Azure Table storage 之 动态Table类 DynamicTableEntity
在一般情况下,当我们在.net中使用Azure table storage的时候都会为该表建立一个TableEntity的派生类,如下所示. public class CustomerEntity : ...
- swift中editingStyleForRowAtIndexPath的写法
效果图: 首先要实现这句tableView.setEditing(true, animated: true)才能弹出左侧的小圆圈 然而在oc中tableview删除的写法百度一下很常见但是swift中 ...
- 使用 greenDao 框架 操作数据库
0.效果图