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

推荐订阅源

月光博客
月光博客
MongoDB | Blog
MongoDB | Blog
Apple Machine Learning Research
Apple Machine Learning Research
The GitHub Blog
The GitHub Blog
博客园 - 聂微东
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
大猫的无限游戏
大猫的无限游戏
WordPress大学
WordPress大学
云风的 BLOG
云风的 BLOG
H
Help Net Security
H
Hackread – Cybersecurity News, Data Breaches, AI and More
A
About on SuperTechFans
Hugging Face - Blog
Hugging Face - Blog
罗磊的独立博客
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
Martin Fowler
Martin Fowler
博客园 - 司徒正美
Stack Overflow Blog
Stack Overflow Blog
B
Blog
博客园 - Franky
小众软件
小众软件
Recorded Future
Recorded Future
B
Blog RSS Feed
爱范儿
爱范儿
宝玉的分享
宝玉的分享
L
LangChain Blog
博客园 - 【当耐特】
The Register - Security
The Register - Security
P
Proofpoint News Feed
V
Visual Studio Blog
Blog — PlanetScale
Blog — PlanetScale
雷峰网
雷峰网
Last Week in AI
Last Week in AI
Microsoft Azure Blog
Microsoft Azure Blog
GbyAI
GbyAI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
M
MIT News - Artificial intelligence
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
MyScale Blog
MyScale Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
aimingoo的专栏
aimingoo的专栏
D
Docker
酷 壳 – CoolShell
酷 壳 – CoolShell
阮一峰的网络日志
阮一峰的网络日志
有赞技术团队
有赞技术团队
G
Google Developers Blog
S
SegmentFault 最新的问题
Microsoft Security Blog
Microsoft Security Blog

博客园 - 慕容尘轩

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动态表头,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