kettle批量读取清洗excel文件,并分别生成新excel
本参考以下链接,特此感谢
zKettle实战100篇 第19篇 转换核心对象Microsoft Excel输出组件 — 八一菜刀
kettle遍历目录_yzp950311的博客-CSDN博客
【Kettle】—— Kettle遍历执行SQL文件 - 灰信网(软件开发博客聚合)
【Kettle】—— Kettle遍历执行SQL文件_maixiaochai的博客-CSDN博客_kettle导入sql文件
Kettle之批量读取excel文件内容实现批量下载功能 - 灰信网(软件开发博客聚合)
总体逻辑大概如下
总流程
JS-初始化EXCEL名称和路径列表:
var prevRows=previous_result.getRows();//如果结果集数据为null或者没有数据,直接返回false
if(prevRows == null &&(prevRows.size()==0)){false;
}else{for(var j = 0; j < prevRows.size(); j++){//将所有结果集数据存进sourceUrl变量parent_job.setVariable("prevRows"+j,prevRows.get(j));} //将元素个数设置给size变量parent_job.setVariable("size",prevRows.size());//设置一个循环起始变量parent_job.setVariable("i",0);true;
}
这里为什么 set变量的时候 ,是用for循环把每一条文件的内容加下标存进去
因为: 我之前试过用二维数组存 “文件路径+文件短名”的 方式,大概是下面这个样子
[[a1,a2],[b1,b2],[c1,c2]]
这个玩意存到 kettle的 变量里面 就是一个字符串 “[[a1,a2],[b1,b2],[c1,c2]] ”
我取出来之后,没法还原成 二维数组,只能把 [] 全部替换成空串,然后用逗号,split成数组,但是兄弟们,这样分割出来的数组就变成了1维数组了,等于你得到的是 [a1,a2,b1,b2,c1,c2]
但是你想要的是 [a1,a2],[b1,b2],[c1,c2] ,我试了 eval 去还原二维数组。没用,这个kettle里面的js不认识
所以 综上所述,我把每一条记录都用一个变量存起来了 区分它们的就是下标,比较笨,兄弟们有更好的方法请给我留言谢谢!
JS-读取单个excel的路径和文件名
var size=new Number(parent_job.getVariable("size"));
var i=new Number(parent_job.getVariable("i"));
//var prevRows=parent_job.getVariable("prevRows").replace("[","").replace("]","").split(",");if(i>=size){false;
}else{//因为上一步添加进去的时候,是作为一个像数组元素一样的对象添加进去,变量都会转成字符串,所以直接移除掉就可以了var subject="自定义日志输出";//实例化日志channel对象var log= new org.pentaho.di.core.logging.LogChannel(subject);//日志输出log.logMinimal("XXXXXXXXXXXXXXXXXXXXXXXX:");//log.logMinimal(i);var curRows=parent_job.getVariable("prevRows"+i).replace("[","").replace("]","").split(",");parent_job.setVariable("furi",curRows[0]);var fname = curRows[1];var idxname = fname.indexOf(".");var fsname = fname.substring(0,idxname)parent_job.setVariable("fname",fname);parent_job.setVariable("fsname",fsname);true;
}
PS :这里设置的变量 furi和fsname 是为了在下一个转换里面当成参数传递给 “excel输入” 以及“excel输出”
furi : fileuri 文件的绝对路径
fsname : file short name 不带后缀的文件名
更新遍历的下标
//变量i自加
var i = new Number(parent_job.getVariable("i"))+1;//在把i设置回去
parent_job.setVariable("i",i);true;
(转换)读取excel文件列表:
获取文件名:获取这个目录下的所有你要的excel
字段选择-复制到结果: 把读取到的结果组装成结果集,供下一步读取遍历
(转换)清洗并输出新excel
kettle批量读取清洗excel文件,并分别生成新excel相关推荐
- php原生读取excel文件夹,原生php实现excel文件读写的方法分析php技巧
这篇文章主要介绍了原生php实现excel文件读写的方法,结合实例形式分析了采用原生php针对Excel进行读写操作的相关实现方法与操作注意事项,需要的朋友可以参考下 本文实例分析了原生php实现ex ...
- 【MATLAB】批量读取图像raw文件(干货代码分享)
[MATLAB]批量读取图像raw文件(干货代码分享) 1.先学个简单的,读取单张raw文件 matlab代码如下: %图像的基本信息: %512行,640列,像素深度16bit. col=640; ...
- C++ 怎么批量读取多个文件
C++ 怎么批量读取多个文件 char szName[100] = {'\0'};sprintf(szName, "/training/wall/clouser_wall%d.pcd&quo ...
- java写入excel文件内存不足,java 导出 excel 最佳实践,java 大文件 excel 避免OOM(内存溢出) excel 工具框架...
产品需求 产品经理需要导出一个页面的所有的信息到 EXCEL 文件. 需求分析 对于 excel 导出,是一个很常见的需求. 最常见的解决方案就是使用 poi 直接同步导出一个 excel 文件. 客 ...
- 多個excel文件合并到一個excel文件
各位大俠下午好: 小弟在把多個由水晶報表導出的excel文件合并到一個excel文件的時候發現有一下問題: 圖片和表格重疊在一起,也就是說報表的圖形遮住了表格文字.如果 ...
- 如何用Apache POI操作Excel文件-----如何在已有的Excel文件中插入一行新的数据?
在POI的第一节入门中,我们提供了两个简单的例子,一个是如何用Apache POI新建一个工作薄,另外一个例子是,如果用Apache POI新建一个工作表.那么在这个章节里面,我将会给大家演示一下,如 ...
- 用pandas生成excel文件示例,并调整excel的格式或样式
用pandas生成excel 当我们有特殊的需求时,比如要修改excel的行宽列宽,还有字体样式等等 需求示例 代码实现 # -*- coding: utf-8 -*- import pandas a ...
- python 批量读取xlsx并合并_python合并多个excel表格数据-python如何读取多个excel合并到一个excel中...
python如何读取多个excel合并到一个excel中 思路 利用python xlrd包读取excle文件,然后将文件内容存入一个列表中,再利用xlsxwriter将内容写入到一个新的excel文 ...
- 【框架思路】python如何读取excel文件内容?如何获取excel文件的路径及sheet名称?
转载请注明作者和出处:美二 https://blog.csdn.net/qq_32654897/article/details/88579713 一.背景说明 在自动化项目中,有时候测试用例会放在ex ...
最新文章
- 聊天机器人革命即将到来 开发者入局需谨慎
- 为什么租号玩显示服务器忙,租号玩上号器怎么用,租号玩上号器使用教程
- 【NLP】NLP实战篇之bert源码阅读(run_classifier)
- 【大会】看案例,选方案
- ssh 连接linux 乱码问题,SSH 连接 Ubuntu 时的中文乱码问题
- 面试题46. 把数字翻译成字符串
- nginx服务+LEMP搭建
- LDA-线性判别分析
- C++程序设计课上机作业
- 信签纸有虚线怎么写_写观后感的信签纸格式
- 打印系统开发(63)——C# 实现虚拟打印机 HP Color LaserJet 4500 (2) True Type Font字体显示
- 凡是函数中未指定存储类型_函数中未指定存储类别的局部变量,其隐含的存储类别为()...
- 使用word2vec分析新闻标题并预测文章流行度
- 2022年全球市场液相色谱仪器总体规模、主要生产商、主要地区、产品和应用细分研究报告
- 第四十六章 使用 ^SystemPerformance 监视性能 - 生成 ^SystemPerformance 性能报告
- VHDL行为描述方法实现与门
- spring源码阅读--aop实现原理分析
- 营改增后计算机 维护费税率,维保费税率可以是10%吗_税率
- 关于通用雷达信号的时频分析与图像绘制(Matlab)
- 安卓系统再曝高危漏洞!大部分手机都可能被黑客控制
热门文章
- mysql 保留两位小数 查询_mysql查询结果保留两位小数
- ADO操作Excel,提示错误“不可识别的数据库格式”
- 超详细 Unity 大作业之 坦克大战
- 逻辑回归(Logistic Regression, LR)简介
- iOS 视频播放 MPMoviePlayerViewController
- sqlserver对cpu主频要求_SQLSERVER到底能识别多少个逻辑CPU?
- 查看数据库最大连接数
- Vue3: Non-function value encountered for default slot. Prefer function slots for better performance.
- Qt 的TCP网络通信
- 优秀编程知识文章-链接汇总(持续更新ing)