设为首页 收藏本站
查看: 366|回复: 0

[经验分享] 集算器读写EXCEL文件的代码示例

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-9-5 10:45:33 | 显示全部楼层 |阅读模式
集算器可以方便地读写Excel文件,下面用一个例子进行说明:
    描述:从data.xlsx读取订单数据和销售员列表,根据这两个sheet计算各部门的销售额,计算结果写入result.xlsx。
    源Excel文件:data.xlsx有两个sheet,其中订单数据如下:
wKiom1QICyCANeMUAAEzyowDvcQ235.jpg
  销售员列表如下:
wKioL1QICybCs5MOAAFspw12rTE178.jpg
    集算器代码:
wKiom1QICyLD5aHmAACUqANL6jI937.jpg
A1-A2:从excel文件data.xlsx分别读取第1和第2个sheet,以序表的形式存储在A1、A2格,即订单数据和销售员列表。
A3-A4:先将订单数据和销售员列表按照员工编号进行左关联,再通过分组汇总求各部门的销售额。算法不是本例的重点,这里不做过多描述。
A5:将计算结果存储于result.xlsx。
    计算结果(result.xlsx)
wKioL1QICybBABwBAADH54SJwYY800.jpg
    代码解读:
  • 列名

importxls使用了函数选项@t,这表示将sheet的第一行当做集算器序表的列名,比如点击A1单元格,可以看到其变量值:
wKiom1QICyOwj7JJAADkJWA-ROs209.jpg
如此一来,后面的运算就可以直接使用列名来访问A1中的数据。
  • Sheet名

上述代码是按照sheet序号来读取数据的,但有时用户更愿意用sheet名。集算器支持这种用法,比如订单数据的sheet名是“sales”,只需把A1中的sheet序号直接换成sheet名就可以实现按名读取,如下:
file("E:/data.xlsx").importxls@t(;”sales”)
写入文件时一样。如果想把A4的计算结果导出到名为summary的sheet,可以这样写:
file("E:/result.xlsx").exportxls@t(A4;”summary”)
  • 数据范围

上述代码默认从sheet的第一行读取数据,直至结尾。但事实上我们常会遇到读取部分数据的情况,比如:
wKioL1QICyjSaztSAAFa-EstO-4652.jpg
Importxls函数可以指定要读取的行数范围。比如从第4行开始读,可以写作:
file("E:/data.xlsx").importxls@t(;1,4)
从第4行读到第1000行,可以写作:
file("E:/data.xlsx").importxls@t(;1,4:1000)
读取的列数也可以限制,比如只读取OrderID、SellerId、Amount这三列,可以写作:
file("E:/data.xlsx").importxls@t(OrderID,SellerId,Amount;1)
也可以按照列号来读取:
file("E:/data.xlsx").importxls@t(#1,#3,#4;1)
    延伸:
集算器有for循环语句,可以批量读写Excel文件。
集算器支持参数和宏,可以让基于Excel数据源的计算更加灵活。
集算器支持多数据源计算,可以实现数据库、文本文件、Excel之间的混合计算和数据迁移。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-24501-1-1.html 上篇帖子: 使用CDH Manager(及本地源)自动化安装CDH 5 下篇帖子: 命令之expr EXCEL
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表