我有一些Excel数据。说:
我需要一个带有参数列和数据的方法,该方法转到该列中的下一个可用单元格并输入数据。
例如appendData(0,“Xyz”)应在单元格A4中输入“Xyz”。 我正在使用jxl。这是我到现在为止所能得到的......
public static void appendData(int column, String data) throws BiffException, IOException, WriteException{
Workbook file=Workbook.getWorkbook(inputWorkbook);
WritableWorkbook writeBook=Workbook.createWorkbook(inputWorkbook,file);
WritableSheet sheet = writeBook.getSheet(0);
WritableFont wf=new WritableFont(WritableFont.ARIAL);
WritableCellFormat cf = new WritableCellFormat(wf);
cf.setWrap(true);
for (int i = 0; i <= sheet.getRows(); i++) {
Cell cell = sheet.getCell(column, i);
String cellContent = cell.getContents().toString();
if (cellContent.isEmpty()) {
Label label = new Label(column, i, data,cf);
sheet.addCell(label);
}
}
writeBook.write();
writeBook.close();
return;
}
public static void main(String[] args) throws BiffException, WriteException, IOException{
appendData(0, "UID1");
}
失败并出现以下错误:
线程“main”中的异常jxl.write.biff.RowsExceededException:超出了工作表上允许的最大行数 在jxl.write.biff.WritableSheetImpl.getRowRecord(WritableSheetImpl.java:1214) 在jxl.write.biff.WritableSheetImpl.addCell(WritableSheetImpl.java:1151) 在com.tivo.tsg.common.XLWriter.appendData(XLWriter.java:59) 在com.tivo.tsg.common.XLWriter.main(XLWriter.java:79)
有人可以帮忙吗?
谢谢, 麦克
答案 0 :(得分:0)
注意:旧版Microsoft Excel(文件扩展名为* .xls)支持65536(2次幂16)。检查您是否尝试获取或写入大于65536行的位置。
排查选项:
你文件中的59是什么样的。例外从代码中的第59行开始。分享细节,它可以帮助。 com.tivo.tsg.common.XLWriter.appendData(XLWriter.java:59)
检查此链接的最后2个答案,建议设置其他选项。它可能有助于解决问题。
http://community.jaspersoft.com/questions/518045/maximum-number-rows-within-excel-spreadsheet
答案 1 :(得分:0)
public static void appendData(int column, String data) throws BiffException, IOException, WriteException{
Workbook file=Workbook.getWorkbook(inputWorkbook);
WritableWorkbook writeBook=Workbook.createWorkbook(inputWorkbook,file);
WritableSheet sheet = writeBook.getSheet(0);
WritableFont wf=new WritableFont(WritableFont.ARIAL);
WritableCellFormat cf = new WritableCellFormat(wf);
cf.setWrap(true);
Cell[] cell = sheet.getColumn(column);
int len = cell.length;
Label label = new Label(column, len, data,cf);
sheet.addCell(label);
writeBook.write();
writeBook.close();
return;
}
这对我有用!我想我以前的做法本身就错了。