[RESOLVIDO] Como alterar uma linha de uma planilha no excel já existente

public class Main { public static void main(String[] args) throws IOException { //FileInputStream stream = new FileInputStream("c:/planilha.xls"); FileOutputStream stream = new FileOutputStream("c:/planilha.xls"); //HSSFWorkbook wb = new HSSFWorkbook(stream); HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet("Sheet1"); HSSFRow row = sheet.createRow(3); HSSFCell cell = row.createCell((short) 2); cell.setCellValue("Teste"); wb.write(stream); //System.out.println(cell.getStringCellValue()); stream.close(); } }

Prezados,

Este código acima ele consegue inserir o texto no lugar desejado só que ele “recria” a planilha.
Gostaria de saber como posso fazer uma alteração na planilha sem precisar recria-la.

Grato!

Se deu null pointer na linha com o código HSSFCell cell = row.getCell((short) 0); isso quer dizer que row está com valor nulo, não foi inicializada a variável. Imagine em runtime tentar acessar um método de uma instância a qual não existe, isso vai dar null pointer.

Percebi isso. E já até tirei do topic rsrs.

Minha questão agora é como alterar um contéudo da planilha. Poderia me ajudar?

Usei POI faz tempo e não me lembro, mas da mesma maneira que você pode ler você pode escrever, tente achar a API pra te ajudar.

Por exemplo http://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFCell.html

Eu tenho a api aqui. Do poi to tentando mais eu consigo ler. Não consigo é alterar o conteudo sem apagar o que já está escrito.

eai kra blz?

tenho um exemplo bem bacana, vou te passar assim que chegar em ksa!!!
falow
t+++

[quote=barros]eai kra blz?

tenho um exemplo bem bacana, vou te passar assim que chegar em ksa!!!
falow
t+++[/quote]

Demora mto? rsrs.

Somente estarei em ksa hj depois das 22hs, mas assim q chegar e caso vc naum tenha resolvito teu problema…te repasserei meu exemplo.

Blz… Vou tentando… eu to com um problema no seguinte:

[code]public class Main {
public static void main(String[] args) throws IOException {
HSSFWorkbook hssfworkbook = null;
POIFSFileSystem fs =
[color=red] new POIFSFileSystem(new FileInputStream(“c:/planilha.xls”));[/color]
hssfworkbook = new HSSFWorkbook(fs);

	// HSSFStream       hssfstream = hssf.hssfstream;
	HSSFWorkbook     wb     = hssfworkbook;
	FileOutputStream stream = new FileOutputStream("c:/planilha.xls");

	HSSFSheet        sheet  = wb.getSheet("planilha");
	HSSFRow  row  = sheet.getRow(3);
	HSSFCell cell = row.getCell(( short ) 2);

	cell.setCellType(HSSFCell.CELL_TYPE_STRING);
	cell.setCellValue("MODIFIED CELL!!!!!");
	wb.write(stream);
	stream.close();
}

}[/code]

O código acima extrai da página da api. Estou tentando aqui fazer ele funcionar mas apresenta um erro:

Exception in thread "main" java.io.IOException: Unable to read entire header; 174 bytes read; expected 512 bytes at org.apache.poi.poifs.storage.HeaderBlockReader.<init>(HeaderBlockReader.java:81) at org.apache.poi.poifs.filesystem.POIFSFileSystem.<init>(POIFSFileSystem.java:83) at Main.main(Main.java:18)

Aonda sinalizei com a linha vermelha. Acho que após isso poderá dar certo. Mas pq do erro? Não entendi.

Tem algo errado ainda, mas como disse não uso faz tempo e não lembro. Dê uma olhada em http://www.onjava.com/pub/a/onjava/2003/04/16/poi_excel.html e [url]http://www.java-tips.org/other-api-tips/jexcel/how-to-create-an-excel-file.html[/url}. Leia com calma, tente entender o processo todo.

Consegui pela POI mesmo descobri o que estava de errado! Mais vlw!

Oi,

Estou com esse mesmo problema, não consigo alterar o conteudo da minha planlha so consigo criar uma nova.
Teria como me passar como vc resolveu?

valeu
T+

Olá, Não querendo revive um tópico morto, porem ates de abrir um tópico eu vou tentar esse á existente =/
eu estou tentando Editar uma planilha já existente, por questões de padrões e por que a planilha eh meio complexa… eu soh quero inserir um conteudo nas celulas X,Y e Z… procurei em VARIOS tópicos na net e não consegui nada consistente… Estou usando a biblioteca POI tbm…
não seria o caso de criar uma planilha nova para fazer isso…
O código para resolver o meu problema teoricamente seria simples, soh quero incluir uma String em algumas celulas… estou com o mesmo problema do nosso amigo desse tópico, eu soh consigo criar planilhas novas…
Se algué puder me ajudar eu agradeceria, creio q seja um codigo simples…

Agradeço a atenção

PS: não entendi tbm a documentação muito bem…

se alguem tivesse um exemplo de uma parte de codigo para alterar uma planilha aj existente seria de grande ajuda…

bem, olhando em outro topico eu consegui fazer em meu programa… fica aew a dica pra quem não conseguiu…

[code] try{

        FileOutputStream stream = new FileOutputStream("c:/planilha2.xls");
        //HSSFWorkbook wb = new HSSFWorkbook(stream);
        HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream("c:/planilha.xls"));
        HSSFSheet sheet = wb.getSheet("Plan1");
        HSSFRow row = sheet.createRow(3);
        HSSFCell cell = row.createCell((short) 2);
        cell.setCellValue("Teste");
        wb.write(stream);
        //System.out.println(cell.getStringCellValue());
        stream.close();
    }catch(Exception e){
        
    }[/code]