none
VSTO C# - Excel RRS feed

  • Pergunta

  •  

    Bom Dia.

     

    Estou começando a utilizar o VSTO para soluções em excel, porém ainda tenho muitas dúvidas. Por exemplo, gostaria de fazer com que direto do excel eu acesse uma base de dados (oracle) e disponibilize estas informações.

     

    Gostaria também que estas "consultas" ficassem disponiblizadas como funções do excel (UDF), para que o usuário final possa utilizar tranquilamente. Alguém sabe se isto é possível? Alguém tem algum exemplo ou algum materia inicial para disponibilizar/ajudar neste início?

     

    Desde já agradeço.

     

    Rafael

    terça-feira, 1 de abril de 2008 12:49

Respostas

  • Rafael,
    veja se isso te ajuda.

    Eu adiciono uma referência COM, do Excel.
    No meu caso era Microsoft Excel 11.0 Object Library.

    Ele abre o Excel, coloca o texto "1001" na célula A1 e salva o Excel
    Abrir Excel, e insere valores
            Excel.Application excelApp = new Excel.Application();
            try
            {            
                excelApp.Visible = false;

                Excel.Workbook excelWB = excelApp.Workbooks.Open("C:\Arquivo.xls"
    , System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing);

                Excel.Worksheet excelWS = (Excel.Worksheet)excelWB.Worksheets[1];

                Excel.Range celulas = null;
      celulas = excelWS.get_Range("A1", "A1");
                celulas.Cells.Value2 = "1001";

                excelApp.ActiveWorkbook.RefreshAll();
                excelApp.Workbooks.Application.ActiveWorkbook.RefreshAll();

                excelWB.Close(false, null, null);
            }
            catch (Exception ex)
            { throw ex; }
            finally
            {
                excelApp.Quit();
            }

    Pode ser um caminho pro que vc precisa.

    Abs,
    quinta-feira, 17 de abril de 2008 14:20

Todas as Respostas

  • Fala Meu, blz?

    É possível fazer o Excel conectar automaticamente em uma base de dados, e coletar informações do banco.
    Você também pode atualizar os campos do banco na hora que abre a planilha do excel, ou quando clicar em um determinado botão.

    Nem é preciso utilizar o VSTO para isso... Dá pra fazer direto no Excel.

    Eu montei uma solução utilizando Excel, na qual eu pegava informações do SQL Server e atualizava alguns campos da planilha. Eu abria a planilha e estes campos eram atualizados automaticamente. Algumas células contiam funções e estas funções ficavam exclusivamente na planilha.

    Com isso, a responsabilidade da formula é de quem monta a planilha.

    Se precisar de uma ajuda com isso, pode postar.

    Abs,
    quarta-feira, 9 de abril de 2008 16:58
  • Fala Diego...

     

    Então cara, direto do excel acessando base de dados oracle eu já fiz. O que na verdade pretendo fazer é utilizar ferramentas e arquitetura do c#, porém as informações para o usuário final ficam no próprio excel mesmo.

     

    Eu já evolui um pouco, montei minhas classes para acesso a dados, etc. Mas ainda estou esbarrando em controles do próprio excel, como por exemplo como jogar informações no excel via lista, via grid ou nas próprias células. Esta "integração" que não estou conseguindo, e por isto perguntei se alguém já fez ou conhece algo a respeito.

     

    Obrigado pela ajuda.

     

    Se alguém souber, por favor me avise.

     

    Obrigado

     

    Rafael

    quinta-feira, 17 de abril de 2008 14:06
  • Rafael,
    veja se isso te ajuda.

    Eu adiciono uma referência COM, do Excel.
    No meu caso era Microsoft Excel 11.0 Object Library.

    Ele abre o Excel, coloca o texto "1001" na célula A1 e salva o Excel
    Abrir Excel, e insere valores
            Excel.Application excelApp = new Excel.Application();
            try
            {            
                excelApp.Visible = false;

                Excel.Workbook excelWB = excelApp.Workbooks.Open("C:\Arquivo.xls"
    , System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing);

                Excel.Worksheet excelWS = (Excel.Worksheet)excelWB.Worksheets[1];

                Excel.Range celulas = null;
      celulas = excelWS.get_Range("A1", "A1");
                celulas.Cells.Value2 = "1001";

                excelApp.ActiveWorkbook.RefreshAll();
                excelApp.Workbooks.Application.ActiveWorkbook.RefreshAll();

                excelWB.Close(false, null, null);
            }
            catch (Exception ex)
            { throw ex; }
            finally
            {
                excelApp.Quit();
            }

    Pode ser um caminho pro que vc precisa.

    Abs,
    quinta-feira, 17 de abril de 2008 14:20
  • Bom dia

    Caros Amigos.

    estou tentando criar um programa em c#, com windows form, que lista os arquivos num listbox ( ja ta pronto )

    agora preciso abrir estes arquivos, ou apenas ler, para procurar um texto dentro dele e subistituir.

    veja.

    ele tem um 2 text Box, um para localizar outro para subisturuir.

    entao, preciso ler o excel e localizar dentro dele e fechar, como posso fazer isso ?

    podem me ajudar?

     

    obrigado a todos


    Gere
    quinta-feira, 17 de junho de 2010 14:31