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

15 respostas
king_of_gods

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!

15 Respostas

fiaux

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.

king_of_gods

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

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

fiaux

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.

fiaux

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

king_of_gods

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+++

king_of_gods

barros:
eai kra blz?

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

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.

king_of_gods
_barros_:
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:

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

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.

fiaux

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.

king_of_gods

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

daianeteixeiracomp

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+

jedsc91

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…

jedsc91

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

jedsc91

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

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){
            
        }
Criado 11 de fevereiro de 2008
Ultima resposta 27 de out. de 2010
Respostas 15
Participantes 5