Download Excel
1.FM:GUI_DOWNLOAD
这是最基本的方法,对应 CLASS:CL_GUI_FRONTEND_SERVICES 的方法 GUI_DOWNLOAD
注意参数 FILENAME 以xls结尾这样在保存时可以保存为 excel.
示例如下
data:itab like table of mara WITH HEADER LINE.
DATA:BEGIN OF T_FIELDNAMES OCCURS 0,
NAME TYPE CHAR20,
END OF T_FIELDNAMES.
START-OF-SELECTION.
select * from mara into table itab up to 10 rows.
T_FIELDNAMES-NAME = '公司代码'.
APPEND T_FIELDNAMES.
T_FIELDNAMES-NAME = '功能范围'.
APPEND T_FIELDNAMES.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = 'C:\1234.xls'
FILETYPE = 'DAT'
"这里一般用DAT,如果用ASC则1000-不会显示为-1000,而dat会显示为-1000,如果用DBF则不会有缩进,即字符前面的空格会被除去,而且字符的前导0也会输出。
CODEPAGE = '8404'
tables
data_tab = ITAB
FIELDNAMES = T_FIELDNAMES
这个函数虽然说比较简单,但当FILETYP为DAT 和ASC时,在我的2010版EXCEL打开时会弹出如下的对话框(不知道在EXCEL 2003会不会有这样的问题,知道的童鞋可以给个留言):
原因: 以DAT和ASC格式存的EXCEL其实是TXT格式,与EXCEL格式不一致。
2.FM:SAP_CONVERT_TO_XLS_FORMAT
这个FM功能与GUI_DOWNLOAD类似,不过与EXCEL版本有兼容性的问题,本人在自己的系统上(excel2010)测试此FM,给出了EXCEL文件格式无效,无法打开,在EXCEL2003暂时没试过。不过,这里还是给出示例:
CALL FUNCTION 'SAP_CONVERT_TO_XLS_FORMAT'
EXPORTING
* I_FIELD_SEPERATOR =
* I_LINE_HEADER =
I_FILENAME = p_file "文件名
* I_APPL_KEEP = ' '
TABLES
I_TAB_SAP_DATA =itab “内表
* CHANGING
* I_TAB_CONVERTED_DATA =
EXCEPTIONS
CONVERSION_FAILED = 1
OTHERS = 2
3.FM:MS_EXCEL_OLE_STANDARD_DAT
这个FM不仅仅能把数据传到EXCEL同时也会直接打开EXCEL文件。
但是这个函数有一个缺点:当要把中文数据导入到EXCEL时就必有登陆中文的GUI运行程序,否则中文就会变成'#'号。
DATA:BEGIN OF iT_FIELDNAMES OCCURS 0,
NAME TYPE CHAR20,
END OF iT_FIELDNAMES.
iT_FIELDNAMES-NAME = 'Company Code'.
APPEND iT_FIELDNAMES.
iT_FIELDNAMES-NAME = 'Function Area'.
APPEND iT_FIELDNAMES.
iT_FIELDNAMES-NAME = '5'. "针对非C、N、D、T类型列的列名,函数有Bug
APPEND iT_FIELDNAMES.
CALL FUNCTION 'MS_EXCEL_OLE_STANDARD_DAT'
EXPORTING
file_name = 'C:\johnson.XLSX'
* CREATE_PIVOT = 0
* DATA_SHEET_NAME = ' '
* PIVOT_SHEET_NAME = ' '
* PASSWORD = ' '
* pASSWORD_OPTION = 0
TABLES
* PIVOT_FIELD_TAB =
DATA_TAB = itab
FIELDNAMES =it_fieldnames
* EXCEPTIONS
* FILE_NOT_EXIST = 1
* FILENAME_EXPECTED = 2
* cOMMUNICATION_ERROR = 3
* oLE_OBJECT_METHOD_ERROR = 4
* OLE_OBJECT_PROPERTY_ERROR = 5
* INVALID_PIVOT_FIELDS = 6
* DOWNLOAD_PROBLEM = 7
* OTHERS = 8.
说明:应用这个FM时要注意的BUG:
1、Fieldname数据类型会被强制转变为对应列的类型,如果转换失败则Dump
2、如果连续两次或两次以上以上调用,列名会跑到数据区
还有一个貌似是这个函数前身 EXCEL_OLE_STANDARD_DAT ,实现方法差不多,不过这个函数对某些表会报
"data can't converted in unicode program"的错误,所以还是建议大家采用最新的函数。
4.FM:XXL_FULL_API
这个作者还没有用过,不过有个参考示例se38:XXLTTEST,有兴趣和需求的童鞋可以去看看。
5.OLE
这种方式与上面几种比较优点在于能够定制EXCEL格式,不过比较麻烦。
实现方法大家GOOLGE,网上很多前辈的帖子,这里就不详述。
6.ABAP2XLSX
这是一个类包,是一群爱好者开发的一个专门用于将ABAP数据导入到EXCEL的类,包括对齐,合并,字体,着色等的设置,因为是面向对象的,相比OLE方式要简单,所以编写程序也就比较省力了。
这个方法一般用于需要定制EXCEL格式的情况下使用。
有需要的童鞋可以CALL ME,大家交流一下。。。。
Download Excel相关推荐
- [node 工具] 用 Node.js 将 bugzilla 上的 bug 列表导入到 excel 表格在线版本之一(server 端)...
之前写了个 用 Node.js 将 bugzilla 上的 bug 列表导入到 excel 表格里 的 cli 工具虽然可以用,但考虑到一下几点,总觉得需要再做点什么. 界面简陋,我那截图上是在 VS ...
- js中excel模板下载
部分代码: <button class="btn" type="button" id="templateDownload">模板 ...
- laravel框架excel扩展包maatwebsite-excel升级3.1版本兼容处理
maatwebsite/excel2.1版本与3.1版本写法差别有点大,不能同时使用,下面是旧方法升级新方法的调整 单Sheet导入 旧的写法使用新的扩展包导入会报错Call to undefined ...
- php导入excel 代码,php excel 导入导出源代码
导入 require_once './includes/reader.php'; // ExcelFile($filename, $encoding); $data = new Spreadsheet ...
- 导出excel,前后台代码示例
ExcelUtil工具类: package com.leigod.NNN.base.util;import org.apache.poi.hssf.usermodel.*;import javax.s ...
- axios实现excel文件下载
axios实现excel文件下载 功能:点击导出按钮,调用接口请求数据,下载excel文件. 没有token验证时,可以采用点击a标签的方式实现excel下载, <a href="xx ...
- PhpSpreadsheet处理Excel 导入、导出并设置样式
PhpSpreadsheet处理Excel PHPOffice 是一个用来处理办公相关软件的php类库 PhpSpreadsheet 专门处理excle的类库 导出如下: 引入类库 composer ...
- php下载excel文件模板文件,PHP下载excel文件变得腐败
我有一个excel文件,我希望用户能够从我的服务器下载.我在这里看了很多问题,但我找不到正确下载没有腐败的文件的方法.我假设它是标题但我还没有它们的工作组合.这就是我现在所拥有的,在我收到的损坏文件中 ...
- C#导入excel到数据库
这几天又碰到了要导excel数据到数据库中,之前在网上也是找,东拼西凑也是把功能弄出来了,今天写个博客记录下. 首先页面的代码 @using (Html.BeginForm("Browse& ...
最新文章
- 亮剑:PHP,我的未来不是梦(4)
- 组件通信 $ref
- 不做在线电商,或许才是永辉超市的未来
- HTML高亮标签<mark></mark>
- 在 C++中处理错误
- android什么是回调,Android中的回调是什么?
- 加密机组会 会议纪要
- usb hid 调试软件_开源USB免驱固件升级软件分享
- PHP笔记-所有错误统一输出404页面(详细错误日志输出,提高安全性)
- 如何腾出计算机内存,win10这几个步骤,瞬间为c盘腾出多G内存
- 搞懂Linux零拷贝,DMA
- 前端-页面性能调试:Hiper
- TypeError: unhashable type: 'list'
- 成为JavaGC专家Part I — 深入浅出Java垃圾回收机制
- matlab切片操作
- 计算机无法打开浏览器,win7电脑打开ie浏览器被提示“该页无法显示”怎么解决...
- 遗补:“预防‘磁碟机’病毒”
- 2021牛客暑假多校第二场 I题—Penguins
- 菠萝V1mini是以太坊唯一的静音机器
- java 反应堆模式_Java NIO 反应堆模式
热门文章
- HBuilder 无法检测到XCode上的模拟器
- 使用doctest单元测试方式培训讲解:Python函数基础
- 禁止文字选中 css
- python的相对路径导入问题
- PHPCMS v9设置文章的审核功能
- 在现有项目中使用AspNet Identity 2.0 实战
- VS 2010 测试功能学习(八) - RnP与Coded UI测试(继续篇)
- Linux搭建lamp(Apache+PHP+Mysql环境)centos7.2版详细教程
- phalcon:跟踪sql语句
- jquery 的ajax请求示例和注意事项