Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

joaofla123

Exportação do SQL Server pra Excel por coordenadas de células

Recommended Posts

Alguém sabe se há como fazer uma exportação de dados do SQL Server pro Excel preenchendo as Células do Excel através de suas Coordenadas?

 

Sei que esse código é longe do real, mas é só demonstração do que eu gostaria de fazer:

 

INSERT INTO OPENROWSET (C:13, D:13) VALUES ('MAÇÃ', 'MANGA')

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nunca vi deste modo, pois o OPENROWSET não consegue identificar linha/coluna exata do excel.

Vou tentar fazer uns testes aqui, mas me diga, qual a sua versão do SQL?

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Descobri uma forma que não é perfeita mas no meu caso serviu.

 

1.Criei uma Planilha na outra aba e defini na primeira linha escrevi nomes únicos de cada coluna.

2.Como cada coluna tem um nome, em baixo de cada uma inseri os valores relativos atraves da exportacao do sqlserver.

3. Na primeira planilha do excel na qual eu queria inserir esses valores apenas referenciei em cada celula as celulas da planilha da segunda aba com a formula de igual ( =Plan2!C1 ) por exemplo

 

Gambiarrinha mas talvez alguem va precisar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente é muito mais fácil você fazer todo o trabalho com os dados e exportar para o Excel, tendo em vista que o SQLServer não consegue determinar o endereço de linhaxcoluna.

 

O que você pode tentar fazer também, é um Linked Server para este arquivo Excel e trabalhar com Select e Update "puro", deste modo:

 

Geralmente, quando vou manipular dados do excel, ou eu trago os dados para o SQL (via BCP, DTSx, Import/Export) e depois exporto para o Excel o resultado.
[]´s
/*/***************** SQL 2000 ~ 2008R2  *****************/EXEC sp_addlinkedserver 'ExcelSource','Jet 4.0','Microsoft.Jet.OLEDB.4.0','C:\DATABASES\teste.xls',NULL,'Excel 5.0'GO /***************** <= SQL 2012 *****************/EXEC master.dbo.sp_addlinkedserver@server = N'ExcelSource',@srvproduct = N'ACE 12.0',@provider = N'Microsoft.ACE.OLEDB.12.0',@datasrc = N'C:\DATABASES\_DIVERSAS\teste.xls',@provstr = N'Excel 12.0' GO*/ /***************** SELECT GERAL NO EXCEL  *****************//*SELECT * FROM [ExcelSource]...[Plan1$]GO EXECUTE SP_TABLES_EX 'ExcelSource'GO*/

Compartilhar este post


Link para o post
Compartilhar em outros sites

blz valeu ae cara. no meu caso foi mais complicado pq eh o preenchimento de um formulario no excel.

 

entao tenho q colocar cada valor numa celula exata.

Compartilhar este post


Link para o post
Compartilhar em outros sites

1- Eu possuo uma aplicacao com varios passos.

2- A cada passo a aplicacao fornece dados que estao no banco de dados SQL.

3- Num ultimo passo a aplicacao precisa preencher um relatorio que ja esta com o layout pronto e eh padrao da empresa.

4- Eu preciso que cada dado seja inserido em celulas especificas deste formulario.

5- Não sei como fazer!!!!!

 

O formulario nao possui cabecalhos para que eu possa inserir os dados de acordo com o cabecalho.

Compartilhar este post


Link para o post
Compartilhar em outros sites

1- Eu possuo uma aplicacao com varios passos.

2- A cada passo a aplicacao fornece dados que estao no banco de dados SQL.

3- Num ultimo passo a aplicacao precisa preencher um relatorio que ja esta com o layout pronto e eh padrao da empresa.

4- Eu preciso que cada dado seja inserido em celulas especificas deste formulario.

5- Não sei como fazer!!!!!

 

O formulario nao possui cabecalhos para que eu possa inserir os dados de acordo com o cabecalho.

 

Dúvidas:

2 - Em tela isso?? É uma procedure que fornece os dados?

3 - Relatório em que linguagem?! É este do Excel?

4 - Porque não traz os dados para o SQL e Exporta para o Excel?

5 - Podemos ajudar :p

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

valeu msm por tentar ajudar. ja evoluí bastante aqui. ja sei como exportar pra excel atraves de coordenadas com o C#.

vou compartilhar o codigo junto com alguns comentarios que fiz caso alguem precise.

 

o restante do processo creio vou fazendo com a ajuda do pessoal aqui.

//REFERENCIAS DO SISTEMA
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Reflection;
using System.Globalization;
using System.Threading;
// ADICIONAR REFERENCIA DO INTEROP EXCEL
using Microsoft.Office;
using Excel = Microsoft.Office.Interop.Excel;
using DataTable = System.Data.DataTable;
using Microsoft.Office.Interop.Excel;
 
public partial class GIS_Relatorios_Default : System.Web.UI.Page
{
 
    protected void Page_Load(object sender, EventArgs e)
    {
 
        // EXPORTAÇÃO PARA RELATÓRIO ACIMA DE R$50.000,00
 
        Excel.Application excelRCCmais;
        Excel.Workbook excelWorkBookMais;
        Excel.Worksheet excelWorkSheetMais;
        object misValueMais = System.Reflection.Missing.Value;
        
        excelRCCmais = new Microsoft.Office.Interop.Excel.Application();
 
// ABRE UM DOCUMENTO JÁ EXISTENTE PRA MODIFICÁLO:
        excelWorkBookMais = excelRCCmais.Workbooks.Open(@"C:\Users\joao.silva\Documents\RCC+.xlsx", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
        
// SELECIONA A PLANILHA A SER USADA
        excelWorkSheetMais = (Excel.Worksheet)excelWorkBookMais.Worksheets.get_Item(1);
        
// DEIXA A INSTANCIA DO EXCEL INVISIVEL OU VISIVEL
        excelRCCmais.Visible = false;
 
// ADICIONAR TEXTO NA CELULA:
        // nomeVariavel.Cells[Linha, Coluna] = "Texto a incluir na célula";
 
        excelRCCmais.Cells[10, 7] = "Empresa Projeto"; /* STRING */
 
        excelRCCmais.Cells[11, 7] = "Objeto"; /* STRING */
 
        excelRCCmais.Cells[13, 7] = "Requisitante"; /* STRING */
 
        excelRCCmais.Cells[13, 12] = "Diretoria"; /* STRING */
 
// ATIVAR OU DESATIVAR ALERTAS DA APLICAÇÃO EXCEL. POR EXEMPLO PERGUNTAR SE DESEJA SOBRESCREVER O ARQUIVO:
        // nomeVariavel.DisplayAlerts = booleano;
 
        excelRCCmais.DisplayAlerts = false;
 
// SALVAR COMO AO INVÉS DE APENAS SALVAR (Mantém o arquivo que foi aberto sem alterações e salva outro arquivo com alterações):
// OBS: SEM O "@" ANTES DO DIRETÓRIO HÁ UM CONFLITO COM AS BARRAS "\".
// nomeVariavel.ActiveWorkbook.SaveAs (@"Diretório\Arquivo.xlsx");
 
        excelRCCmais.ActiveWorkbook.SaveAs (@"C:\Users\joao.silva\Documents\RCC+Teste.xlsx");
 
// DIZ PRA APLICAÇÃO EXCEL QUE O ARQUIVO JÁ FOI SALVO EVITANDO ALERTAS DE CONFIRMAÇÃO:
// nomeVariavel.ActiveWorkbook.Saved = booleano;
        excelRCCmais.ActiveWorkbook.Saved = true;
 
// FECHA PLANILHA EXCEL
        excelWorkBookMais.Close(true, misValueMais, misValueMais);
 
// FECHA APLICAÇÃO EXCEL
        excelRCCmais.Quit();

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.