OPENROWSET COM PLANILHAS DO EXCEL (SQL SERVER)

Publicado: junho 3, 2011 em SQL SERVER

HOJE VAMOS FALAR DE OPENROWSET COM PLANILHAS DO EXCEL.

PODEMOS USAR O OPENROWSET PARA BUSCAR QUALQUER PLANILHA E EXPORTAR ELA PARA UMA TABELA NO BANCO DE DADOS. PARA ISSO BASTA ULTILIZAR O COMANDO ABAIXO.

 

SELECT * FROM OPENROWSET(‘Microsoft.Jet.OLEDB.4.0’, ‘Excel 8.0;DATABASE=CAMINHO DO EXCEL’, [NOME DA ABA NO EXCEL QUE VC DESEJA SELECIONAR])

QUALQUER DUVIDA MANDEM UM POST QUE RESPONDEREI O MAIS RAPIDO POSSIVEL.

comentários
  1. Luiz Guilherme disse:

    Eu preciso exportar uma consulta SQL pra um excel, como posso fazer?

    Se possível me explica cada comando…

    Obrigado.

    • Nosso Codigo disse:

      Olá Luiz, segue uma classe que esporta o resultado da GridViwer para Excel.
      using System.IO;
      using System.Web;
      using System.Web.UI;
      using System.Web.UI.WebControls;

      ///

      ///
      ///

      public class GridViewExportUtil
      {
      ///

      ///
      ///

      ///
      ///
      public static void Export(string fileName, GridView gv)
      {
      HttpContext.Current.Response.Clear();
      HttpContext.Current.Response.AddHeader(
      “content-disposition”, string.Format(“attachment; filename={0}”, fileName));
      HttpContext.Current.Response.ContentType = “application/ms-excel”;

      using (StringWriter sw = new StringWriter())
      {
      using (HtmlTextWriter htw = new HtmlTextWriter(sw))
      {
      // Create a table to contain the grid
      Table table = new Table();

      // include the gridline settings
      table.GridLines = gv.GridLines;

      // add the header row to the table
      if (gv.HeaderRow != null)
      {
      GridViewExportUtil.PrepareControlForExport(gv.HeaderRow);
      table.Rows.Add(gv.HeaderRow);
      }

      // add each of the data rows to the table
      foreach (GridViewRow row in gv.Rows)
      {
      GridViewExportUtil.PrepareControlForExport(row);
      table.Rows.Add(row);
      }

      // add the footer row to the table
      if (gv.FooterRow != null)
      {
      GridViewExportUtil.PrepareControlForExport(gv.FooterRow);
      table.Rows.Add(gv.FooterRow);
      }

      // render the table into the htmlwriter
      table.RenderControl(htw);

      // render the htmlwriter into the response
      HttpContext.Current.Response.Write(sw.ToString());
      HttpContext.Current.Response.End();
      }
      }
      }

      ///

      /// Replace any of the contained controls with literals
      ///

      ///
      private static void PrepareControlForExport(Control control)
      {
      for (int i = 0; i < control.Controls.Count; i++)
      {
      Control current = control.Controls[i];
      if (current is LinkButton)
      {
      control.Controls.Remove(current);
      control.Controls.AddAt(i, new LiteralControl((current as LinkButton).Text));
      }
      else if (current is ImageButton)
      {
      control.Controls.Remove(current);
      control.Controls.AddAt(i, new LiteralControl((current as ImageButton).AlternateText));
      }
      else if (current is HyperLink)
      {
      control.Controls.Remove(current);
      control.Controls.AddAt(i, new LiteralControl((current as HyperLink).Text));
      }
      else if (current is DropDownList)
      {
      control.Controls.Remove(current);
      control.Controls.AddAt(i, new LiteralControl((current as DropDownList).SelectedItem.Text));
      }
      else if (current is CheckBox)
      {
      control.Controls.Remove(current);
      control.Controls.AddAt(i, new LiteralControl((current as CheckBox).Checked ? "True" : "False"));
      }

      if (current.HasControls())
      {
      GridViewExportUtil.PrepareControlForExport(current);
      }
      }
      }
      }

Deixe um comentário