简体   繁体   English

如何使用java创建可附加的excelsheet

[英]how to create appendable excelsheet using java

I want to create an append-able excel sheet. 我想创建一个可附加的excel表。 Like i have four columns stream1 stream2 stream3 stream4 就像我有四列stream1 stream2 stream3 stream4

first time i am inserting data only first column(stream1) after that i want to full fill other columns one by one. 第一次我只插入数据第一列(stream1)之后,我想逐个完全填充其他列。

this is the code which i am using: 这是我正在使用的代码:

 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();

But this is not append-able code. 但这不是可追加的代码。 its inserting data row by row. 它逐行插入数据。

thx in advanced. thx in advanced。

I suppose a slight change in your code should do it. 我想你的代码应该稍微改变一下。

Try replacing 尝试更换

int i = 1; int i = 1;

with the following: 以下内容:

int i = sheet1.getLastRowNum() + 1; int i = sheet1.getLastRowNum()+ 1;

You would also need to change your implementation for reading and writing files a bit. 您还需要更改读取和写入文件的实现。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM