oi pessoal, criei um metodo fatiador, um metodo leitor() e um metodo salvar
o metodo ler() é chamado dentro de salvar()
e o metodo part() fatia a String content que tambem está em salvar()
o que ocorre é que se cria o arquivo xls porém o arquivo txt chamado(“paulo;pinto;ferreira”)
nao é fatiado em celulas diferentes, pior: da null!!
peço ajuda
grande abraço
[code]
- import java.awt.Font;
- import java.io.BufferedReader;
- import java.io.BufferedWriter;
- import java.io.File;
- import java.io.FileReader;
- import java.io.FileWriter;
- import java.io.IOException;
- import javax.swing.JFileChooser;
-
-
- public class C1{
-
-
File f;
-
String ler;
-
-
-
//METODO FATIADOR
-
public String part(String a){
-
String[]b = a.split(";");
-
for(int x =0;x <=4; x++){
-
System.out.println(b[x].toString());
-
}
-
return a;
-
}
-
-
-
-
//LE ARQUIVO TXT
-
public String ler(){
-
JFileChooser choo = new JFileChooser();
-
int res = choo.showOpenDialog(choo);
-
if(res == JFileChooser.APPROVE_OPTION){
-
f = choo.getSelectedFile();
-
}
-
try{
-
BufferedReader l = new BufferedReader(new FileReader(f));
-
while(l.readLine() != null){
-
ler = l.readLine();
-
System.out.println(ler);
-
}
-
}
-
catch(Exception e){
-
e.printStackTrace();
-
}
-
return ler;
-
}
-
-
-
-
-
-
//SALVA EM ARQUIVO XLS
-
public void salvar(){
-
String l = ler();
-
-
JFileChooser choo = new JFileChooser();
-
-
int res = choo.showSaveDialog(choo);
-
if(res == JFileChooser.APPROVE_OPTION){
-
f = choo.getSelectedFile();
-
-
String novo = f.getAbsolutePath().concat(".xls");
-
String content = part(l); // USANDO METODO FATIADOR
-
File fileN = new File(novo);
-
try{
-
FileWriter ff = new FileWriter(fileN);
-
ff.append(content);
-
ff.close();
-
}
-
catch(IOException e){}
-
}
-
-
-
}
-
-
public static void main(String[] args){
-
C1 C = new C1();
-
C.salvar();
-
}
- } [/code]
kra explica melhor, não consegui entender…
tenho um arquivo txt qualquer
quero pegar seu conteudo
e salvar num arquivo xls
ele cria o arquivo xls mas nao pega o conteudo do txt
abraço
No método ler, no while você está usando o l.readLine() como condicional para ele entrar no loop, esse método retorna uma string e pula para a próxima linha se eu não estiver enganado.
Logo se tiver apenas uma linha escrita no arquivo txt ele vai ler ela e vai entrar no loop, mas dentro do loop, na hora de ler novamente e mandar para a string ele retorna null, porque não há uma segunda linha.
tente trocar no condicional do while o l.readLine() por l.ready().
while(l.ready()){
....
}
só preste atenção, dessa maneira que está lendo, se você colocar mais de uma linha no arquivo a ser lido, somente a ultima linha do arquivo vai ficar na variavel!
e outra coisa, no metodo fatiar você está retornando a mesma string que manda para ele, imagino que deveria retornar um array com as palavras, no seu caso o b[].
Seu código tem diversos problemas:
- Só dar o nome de “xls” para um arquivo e gravar qualquer coisa lá dentro, de qualquer jeito, não torna ele um arquivo excel válido.
- Use um scanner para fazer a leitura do arquivo;
- Use um printWriter para escrever texto em outro arquivo. Se for escrever dados binários, use um FileInputStream.
- No fatiador, não é necessário chamar toString(), já que seus tipos de dados já são strings.
- Cuidado com nomes de variáveis como l. Isso parece o 1 e pode gerar um código confuso.
fernando e vini, obrigado pela ajuda
o conteudo do file txt ja é inserido no file xls
mas tudo na mesma celula
como coloco cada pedaço(usando o separador “;”) em uma celula?
abraço
Por que não abrir o arquivo txt no excel diretamente? O excel suporta o formato csv, e o txt provavelmente poderá ser aberto sem conversão nenhuma.
Para manipular arquivos excel, use alguma API como a JExcelApi.
http://jexcelapi.sourceforge.net/