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

推荐订阅源

博客园_首页
Hacker News: Ask HN
Hacker News: Ask HN
V
Visual Studio Blog
Hugging Face - Blog
Hugging Face - Blog
博客园 - 【当耐特】
I
InfoQ
A
About on SuperTechFans
宝玉的分享
宝玉的分享
Project Zero
Project Zero
C
CXSECURITY Database RSS Feed - CXSecurity.com
量子位
The Register - Security
The Register - Security
大猫的无限游戏
大猫的无限游戏
Blog — PlanetScale
Blog — PlanetScale
Simon Willison's Weblog
Simon Willison's Weblog
C
Cyber Attacks, Cyber Crime and Cyber Security
T
The Exploit Database - CXSecurity.com
Cyberwarzone
Cyberwarzone
L
LINUX DO - 热门话题
博客园 - 聂微东
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
P
Privacy International News Feed
T
Tenable Blog
博客园 - 叶小钗
P
Palo Alto Networks Blog
S
Securelist
F
Full Disclosure
Help Net Security
Help Net Security
爱范儿
爱范儿
Cisco Talos Blog
Cisco Talos Blog
F
Fortinet All Blogs
Google DeepMind News
Google DeepMind News
IT之家
IT之家
S
Secure Thoughts
Martin Fowler
Martin Fowler
The Cloudflare Blog
阮一峰的网络日志
阮一峰的网络日志
小众软件
小众软件
G
GRAHAM CLULEY
J
Java Code Geeks
Forbes - Security
Forbes - Security
Application and Cybersecurity Blog
Application and Cybersecurity Blog
A
Arctic Wolf
L
LangChain Blog
Webroot Blog
Webroot Blog
TaoSecurity Blog
TaoSecurity Blog
月光博客
月光博客
T
The Blog of Author Tim Ferriss
Engineering at Meta
Engineering at Meta
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

博客园 - 慕容尘轩

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