如何使用java创build可追加的excelsheet
我想创build一个可追加的excel表。 就像我有四个列stream1 stream2 stream3 stream4
我第一次插入数据只有第一列(stream1)之后,我想充分填写其他列逐一。
这是我正在使用的代码:
public void createFile(Jqueue stream1, Jqueue stream2, Jqueue stream3, Jqueue stream4) { try { String filename = "path"; boolean alreadyExists = (new File(filename)).exists(); HSSFRow rowhead = sheet1.createRow((short) 0); rowhead.createCell((short) 0).setCellValue("Stream 1"); rowhead.createCell((short) 1).setCellValue("Stream 2"); rowhead.createCell((short) 2).setCellValue("Stream 3"); rowhead.createCell((short) 3).setCellValue("Stream 4"); int i = 1; while (!stream1.isEmpty()) { String urlstream1 = ""; String urlstream2 = ""; String urlstream3 = ""; String urlstream4 = ""; HSSFRow row = sheet1.createRow((short) i); try { if (stream1.size() > 0) { urlstream1 = stream1.dequeue().toString(); } } catch (Exception ex) { } try { if (stream2.size() > 0) { urlstream2 = stream2.dequeue().toString(); } } catch (Exception ex) { } try { if (stream3.size() > 0) { urlstream3 = stream3.dequeue().toString(); } } catch (Exception ex) { } try { if (stream4.size() > 0) { urlstream4 = stream4.dequeue().toString(); } } catch (Exception ex) { } row.createCell((short) 0).setCellValue(urlstream1); row.createCell((short) 1).setCellValue(urlstream2); row.createCell((short) 2).setCellValue(urlstream3); row.createCell((short) 3).setCellValue(urlstream4); i++; } FileOutputStream fileOut = new FileOutputStream(filename); hwb.write(fileOut); fileOut.close();
但是这不是可追加的代码。 它逐行插入数据。
thx先进。
我想你的代码应该稍微改变一下。
尝试更换
int i = 1;
具体如下:
int i = sheet1.getLastRowNum()+ 1;
你还需要改变你的实现来读写文件。
- 试图用Apache POI编写一个Excel文件导致OutOfMemoryError
- autoSizeColumn()失败的XSSFSheet
- Apache POI – 如何在Grails应用程序中提供用于下载的excel文件
- 使用addMergedRegion时出现Apache POI错误
- 如何在Excel中使用java poi更改文本方向?
- 有没有办法使用Apache POI来读取.xls和.xlsx文件?
- 写入工作簿时获取java.lang.NullPointerException WorkBook.write(out)Apache POI
- 使用java创buildExcel表格时遇到的问题
- 如何使用Apache POI读取包含图像的excel文件?