详解kettle报错之excel表数据量过大解决方法
概述
最近有个excel表用kettle做了行列转换,发现数据量过大超过excel表限制,下面记录下解决方法。
问题
在用kettle转换输出excel表时报错
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。
扩展名选为2007版本的;并且勾上Stream XSLX DATA 选项,支持流的形式写文件,不然大数量的时候写入不了excel,报内存溢出。
测试
重新选择输出后可以正常输出结果。
共有 0 条评论