惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Hugging Face - Blog
Hugging Face - Blog
云风的 BLOG
云风的 BLOG
大猫的无限游戏
大猫的无限游戏
M
MIT News - Artificial intelligence
L
LangChain Blog
阮一峰的网络日志
阮一峰的网络日志
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Recent Announcements
Recent Announcements
IT之家
IT之家
Google DeepMind News
Google DeepMind News
罗磊的独立博客
爱范儿
爱范儿
Last Week in AI
Last Week in AI
人人都是产品经理
人人都是产品经理
U
Unit 42
MongoDB | Blog
MongoDB | Blog
S
SegmentFault 最新的问题
B
Blog
博客园 - 叶小钗
月光博客
月光博客
Stack Overflow Blog
Stack Overflow Blog
V
Visual Studio Blog
C
Check Point Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

博客园 - 慕容尘轩

kettle调度系统- XKG-PDI轻松配置对外服务接口 kettle调度系统- XKG-PDI flink cdc kettle调度系统- XKG-PDI添加多数据库支持,mop,达梦,金仓走起 kettle调度系统- XKG-PDI拖拉拽轻松实现DAG,强大到飞起 kettle调度系统- XKG-PDI依赖/依赖链调度使用说明 kettle调度系统- XKG集成Webkettle,kettle脚本在线设计&测试&部署一站式解决方案,全新升级 DataX从入门到精通 第4课 ETL之DataX datax-web单表数据全量+增量同步 DataX从入门到精通 第3课 ETL之DataX datax-web单表数据同步 DataX从入门到精通 第2课 ETL之DataX 安装datax-web DataX从入门到精通 第1课 ETL之DataX 安装DataX kettle插件-excel插件,kettle读取excel动态表头,kettle根据列名读取excel kettle从入门到精通 第118课 ETL之kettle,kettle job串行、job并行、 job依赖使用教程 kettle从入门到精通 第117课 ETL之kettle,kettle调用his接口,入参和响应数据均为xml结构 kettle从入门到精通 第116课 ETL之kettle,线上排雷,踩坑复盘 kettle调度系统- XKG集成WebSpoon9.4,kettle脚本在线设计&测试&部署一站式解决方案,持续赋能企业 kettle从入门到精通 第115课 ETL之webspoon 全局异常/错误捕获-续 kettle从入门到精通 第114课 ETL之webspoon 全局异常/错误捕获 kettle从入门到精通 第113课 ETL之webspoon 多行转一行或者多行数据合并为一行 kettle调度系统- 脚本执行错误信息邮件预警,及时发现&解决问题,捍卫生产环境 kettle从入门到精通 第112课 ETL之kettle 数据库资源库,受不了了,逼我出大招 kettle调度系统- kettle数据库资源库,团队协作问题轻松拿捏 kettle调度系统- kettle文件资源库,轻松解决团队协作和脚本版本管理问题 kettle调度系统-1分钟提供接口供外部系统调用,配置简单,快速高效 kettle从入门到精通 第111课 ETL之kettle webspoon7的docker部署详细教程 kettle调度系统-carte集群服务调度,carte集群+算子级集群双集群,涡轮增压,性能拉满,赋能大中型企业 kettle调度系统-carte单体服务调度,支持多kettle版本部署,任务触发毫秒级响应0延迟 kettle从入门到精通 第110课 ETL之kettle webspoon的两种部署方式docker+tomcat使用教程 kettle调度系统-kettle spoon方式调度,强大兼容性,支持各种版本kettle kettle调度系统-kettle嵌入集成方式调度,稳如磐石,一分钟完成任务调度配置 kettle从入门到精通 第109课 ETL之kettle, kettle docker 镜像制作&容器部署
kettle从入门到精通 第119课 ETL之kettle kettle读取excel动...
慕容尘轩 · 2026-03-26 · via 博客园 - 慕容尘轩

场景:

前些日子有位博客园朋友留言,内容如下:

【你好 我遇到一个问题 在网上找了很多资料也无果
刚接手kettle 有一个业务是读取excel然后写入表中
但是excel表头会经常变动 导致程序运行失败 excel已经做了字段定义
但是模板变动后读取的数据 就对应不上字段
如定义字段
name 姓名
age 年龄
当模板变为 姓名 省份 年龄
那么读取的数据 age就变成了省份的数据
这有什么办法处理吗这种动态表头吗?
因为是程序自动运行的 没办法每次手动获取字段】

大概的意思就是excel文件的表头位置不是固定的,需要让kettle根据表头名称读取数据,大家都知道kettle自动的excel组件只能根据表头的位置进行读取,一旦表头字段位置发生改变,读取的数据就会错乱。

解决方案:此问题使用java步骤实现或者二开插件来解决,今天咱们一起来看下如何使用java步骤来解决此问题。

ed64ae49-a14f-407b-8134-cdfa219fc9a6

 1、准备test.xlsx文件

此文件有两个Sheet,每个Sheet里面都有字段姓名、年龄、部门、入职日期、薪资、联系电话、邮箱。

Sheet1

2fe2447f-50c1-4ce8-af27-2c0e20e9324f

 Sheet2

6ee4b45a-dea7-4e4b-80c8-f1f69f9721de

 2、设计trans

1)java步骤使用fastExcel读取excel文件,需要将fastexcel-reader-0.13.0.jar、fastexcel-core-1.2.0.jar、aalto-xml-1.3.2.jar三个文件放到lib目录下,放jar之后需要重启spoon

2)写日志步骤,打印读取到的数据

d0f7fc33-1d01-4a5a-9c36-ae3412429553

 3、Java步骤关键参数配置

1)设置文件路径filePath,可以在java步骤中写死,也可以通过变量excel_file进行传递

2) 设置读取哪些sheet

3)设置读取哪些列、字段名和字段对应的数据类型。

df70864c-c62b-477f-85fb-8b7edaa41f4f

 4)保存&运行,excel文件可以正常读取,另外此java步骤采用的流式方式读取文件,可以读取大的excel文件且内存占用较小。

82146e8b-3dcd-4e28-8e26-27ff1990c9e8

 4、打乱excel文件列顺序,重新读取

Sheet1,调整excel列的位置

b5379376-e9ac-4d44-92be-cb27c73ae7d0

 Sheet2,excel文件插入干扰列

839ab650-d394-49c5-b9fa-306a8233ea9f

 保存&执行,excel数据依然可以正确读取。

301410be-c301-4911-ae9e-53b8d93d36a5

image