Amigos,
Preciso fazer um select no banco para que me traga todas informações da tabela, isso ok.
porem preciso pegar esses valores e salvar como txt ou csv para o usuario abrir isso no bloco de notas ou no excel como preferir.
ja pesquisei javacsv dei uma olhada no que alguns amigos postaram, mas por causa da minha ignorância eu não consegui colocar no meu projeto.
Segue abaixo dois exemplos que peguei na net, se alguem poder me ajudar, confesso que não sei fazer isso e no momento não tenho ninguem aqui para me auxiliar… mas ha um tempo atras eu não sabia fazer upload de fotos aprendi com alguma dicas de vocês e quando deu certo postei a solução para ajudar os proximos…por favor me ajudem.
package br.gov.sp.saobernardo.sehab.mail;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.sql.*;
import br.gov.sp.saobernardo.sehab.util.ContextOracle;
public class JRXlsExporter {
public boolean ExportarXls; {
try {
StringBuffer contenu; //// acho que seria melhor usar o StringBuilder
contenu = new StringBuffer("");
String sql = "select * from tab_caracterizacao";
Statement st = ContextOracle.getInstance().createStatement();
ResultSet rs = st.executeQuery(sql);
ResultSetMetaData rsMeta = rs.getMetaData();
for(int i = 1; i<=rsMeta.getColumnCount(); i++){
contenu.append(rsMeta.getColumnLabel(i)+"\t"); /// nesta linha imprime somente os nome dos campos da tabela
}
contenu.append("\n"); // e temos que colocar todos os dados no StringBuffer
rs.beforeFirst();
while(rs.next()){
for(int i = 1; i<=rsMeta.getColumnCount(); i++){
contenu.append(rs.getString(i)+"\t"); /// aqui mostra todos os dados
}
contenu.append("\n");
} //fim do while
//agora, salvando o StringBuffer no arquivo
FileWriter excelFile = new FileWriter("d:/myResultSet.xls"); // nome do arquivo
excelFile.write(new String(contenu)); //aqui ele passa a String para salvar
excelFile.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
package br.gov.sp.saobernardo.sehab.mail;
import java.io.*;
import java.sql.*;
import java.util.*;
import br.gov.sp.saobernardo.sehab.util.ContextOracle;
public class GeraRelatórioXls {
public static void main(String[] args) {
generateCsvFile("c:/test.csv");
}
private static void generateCsvFile(String filename) {
DatabaseMetaData dbMetaData = null;
String columnNameQuote = "";
try {
// Class.forName("oracle.jdbc.driver.OracleDriver");
// String url = "jdbc:oracle:thin:@//hostname:portno/sid";
// Connection conn = DriverManager.getConnection(url, "username",
// "password");
// conn.setAutoCommit(false);
Statement stmt = ContextOracle.getInstance().createStatement();
ResultSet rset = stmt.executeQuery("select * from tab_caracterizacao");
ResultSetMetaData rsmd = rset.getMetaData();
rset.next();
FileWriter fname = new FileWriter(filename);
BufferedWriter bwOutFile = new BufferedWriter(fname);
StringBuffer sbOutput = new StringBuffer();
sbOutput.append("SKU_CODE,SKU_UPC,LIST_PRICE,SALE_PRICE");
bwOutFile.append(sbOutput);
bwOutFile.append(System.getProperty("line.separator"));
System.out.println("No of columns in the table:"
+ rsmd.getColumnCount());
for (int i = 1; i <= rsmd.getColumnCount(); i++) {
String cname = rsmd.getColumnName(i);
}
System.out.println();
while (rset.next()) {
System.out.println(rset.getString(1) + " " + rset.getString(2)
+ " " + rset.getString(3) + " " + rset.getString(4));
bwOutFile.append(rset.getString(1) + "," + rset.getString(2) + "," + rset.getString(3) + "," + rset.getString(4));
bwOutFile.append(System.getProperty("line.separator"));
bwOutFile.flush();
}
bwOutFile.close();
stmt.close();
System.out.println("Ok.");
}
catch (Exception e) {
System.err.println("Unable to connect to database: " + e);
}
}
}
Desde ja agradeço a atenção e as dicas
Rodrigo