Gerar Excel a partir de um DataSet em C# WindowsForm
Tenho um Dataset, e preciso transformar ele em um arquivo excel.
O dataset ja esta populado, preciso apenas montar um codigo do botal GERA EXCEL.
Alguem poderia me ajudar?
Sou leigo no assunto e to aprendendo tudo na raça, na tentativa e erro, mas os artigos que eu encontrei nao me ajudaram muito.
O dataset ja esta populado, preciso apenas montar um codigo do botal GERA EXCEL.
Alguem poderia me ajudar?
Sou leigo no assunto e to aprendendo tudo na raça, na tentativa e erro, mas os artigos que eu encontrei nao me ajudaram muito.
Marcelo
Curtidas 0
Respostas
Joao Moreira
18/01/2012
eu faço assim não é bem um xls propriamente dito é um arquivo tabulado e salvo com a extensão xls mas ele abre normalmente no excel, acredito que voce possa adaptar a sua necessidade.
string strSQLidPedidosWeb = select osweb from ordens_servico where ordsercod = + OS;
SqlCommand cdmIdPedidoWeb = new SqlCommand(strSQLidPedidosWeb, connSQL.Conn);
SqlDataReader drIdPedido = cdmIdPedidoWeb.ExecuteReader();
if (drIdPedido.Read())
{
StreamWriter sw = new StreamWriter(Server.MapPath(Arquivos/ + edtArquivo.Text),false,Encoding.Default);
using (sw)
{
StringBuilder linha = new StringBuilder();
StringBuilder cabecalho = new StringBuilder();
idPedidoWeb = drIdPedido[osweb].ToString();
drIdPedido.Close();
string strSQLcampos = select a.campo_imp, a.nomcmp_arq from campos_arquivos a +
inner join pedidos_web b on (a.codlay_arq = b.codlay_arq) +
where b.id = + idPedidoWeb;
SqlDataAdapter da = new SqlDataAdapter(strSQLcampos, connSQL.Conn);
DataSet dsCampos = new DataSet();
da.Fill(dsCampos);
SqlDataAdapter daDados = new SqlDataAdapter(strSQLdados, connSQL.Conn);
DataSet dsDados = new DataSet();
daDados.Fill(dsDados);
foreach (DataRow dr in dsDados.Tables[0].Rows)
{
i++;
foreach (DataRow drCampos in dsCampos.Tables[0].Rows)
{
//grava na stringbuilder os nomes dos campos
cabecalho.Append(drCampos[1].ToString()+\t);
//grava o campo que ta configurado no layout para não imprimir os campos null do dataset dos dados
linha.Append(dr[drCampos[0].ToString()].ToString() + \t);
}
//escreve o cabeçalho com os nomes dos campos
if (i == 1)
{
sw.WriteLine(cabecalho.ToString());
}
//escreve os dados
sw.WriteLine(linha.ToString());
linha.Clear();
}
GOSTEI 0
Giordani Ramos
18/01/2012
Boa noite Marcelo.
Dependendo do que você está utilizando para exibir o seu dataset, talvez não seja necessário implementar muita coisa para salvar em excel.
Na aba REPORTING da Toolbox, há o componente Report Viewer. Depois de carregar um relatório vinculado ao dataset, este componente habilita o botão (formato de disquete) de exportar o relatório. Há 3 formatos nativos, DOC, XLS e PDF.
Talvez isso resolva seu problema.
Abraço.
Dependendo do que você está utilizando para exibir o seu dataset, talvez não seja necessário implementar muita coisa para salvar em excel.
Na aba REPORTING da Toolbox, há o componente Report Viewer. Depois de carregar um relatório vinculado ao dataset, este componente habilita o botão (formato de disquete) de exportar o relatório. Há 3 formatos nativos, DOC, XLS e PDF.
Talvez isso resolva seu problema.
Abraço.
GOSTEI 0
Marcelo
18/01/2012
O que eu estou fazendo é salvando ele em xml e ai abrindo ele com o Excel, mas vou tentar com o report e digo se consegui.
Obrigado.
Obrigado.
GOSTEI 0