详解kettle报错之excel表数据量过大解决方法

概述

最近有个excel表用kettle做了行列转换,发现数据量过大超过excel表限制,下面记录下解决方法。


问题

在用kettle转换输出excel表时报错

1.jpg

Excel输出 4.0 - ERROR (version 8.1.0.0-SNAPSHOT, build 8.1.0.0-SNAPSHOT from 2018-04-10 06.42.03 by WangYucai) : Error writing field (0,65536) : jxl.write.biff.RowsExceededException: The maximum number of rows permitted on a worksheet been exceeded
Excel输出 4.0 - ERROR (version 8.1.0.0-SNAPSHOT, build 8.1.0.0-SNAPSHOT from 2018-04-10 06.42.03 by WangYucai) : jxl.write.biff.RowsExceededException: The maximum number of rows permitted on a worksheet been exceeded
Excel输出 4.0 - at jxl.write.biff.WritableSheetImpl.getRowRecord(WritableSheetImpl.java:1214)
Excel输出 4.0 - at jxl.write.biff.WritableSheetImpl.addCell(WritableSheetImpl.java:1151)
Excel输出 4.0 - at org.pentaho.di.trans.steps.exceloutput.ExcelOutput.writeField(ExcelOutput.java:398)
Excel输出 4.0 - at org.pentaho.di.trans.steps.exceloutput.ExcelOutput.writeField(ExcelOutput.java:284)
Excel输出 4.0 - at org.pentaho.di.trans.steps.exceloutput.ExcelOutput.writeRowToFile(ExcelOutput.java:190)
Excel输出 4.0 - at org.pentaho.di.trans.steps.exceloutput.ExcelOutput.processRow(ExcelOutput.java:147)
Excel输出 4.0 - at org.pentaho.di.trans.step.RunThread.run(RunThread.java:62)
Excel输出 4.0 - at java.lang.Thread.run(Thread.java:748)

解决方法

kettle工具的2003excel版本每个sheet只能支持65536行,只需要在kettle输出控件选为microsoft excel。

2.jpg

扩展名选为2007版本的;并且勾上Stream XSLX DATA 选项,支持流的形式写文件,不然大数量的时候写入不了excel,报内存溢出。

3.jpg


测试

重新选择输出后可以正常输出结果。

4.jpg



版权声明:
作者:WaterBear
链接:https://l-t.top/589.html
来源:雷霆运维
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>