Ir ao conteúdo
  • Cadastre-se

cinha

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

Tudo que cinha postou

  1. Boa Tarde! Criei um procedimento no programa para importar dados de duas planilhas de um arquivo do excel para duas Stringrid no delphi 2010, usando o opendialog. Fiz duas funções separadas para cada stringrid. Porém, na primeira stringrid so aparece as 5 primeiras linhas da planilha do excel. Alguem poderia me dizer o que há de errado? Segue código abaixo das 2 funções: function XlsToStringGrid1(AGrid: TStringGrid; AXLSFile: string): Boolean; const xlCellTypeLastCell = $0000000B; var excel,planilha2: variant; i, j, x, y, cont: integer; begin //cursor tempo comunicar ao usuário para que ele aguarde enquanto o formulário está sendo carregado mudando o cursor para ampulheta try Screen.Cursor:=crHourglass; //abrindo o arquivo excel:=CreateOleObject('Excel.Application'); // cria uma aplicação do Excel //--IMPORTANTO PARA 1ª GRID. begin excel.workbooks.open(AXLSFile);//Abre o exel //Abrindo primeira planilha planilha2:=excel.workbooks[1].WorkSheets[1]; excel.Cells.SpecialCells($0000000B, EmptyParam).Activate; //Pegar o número da última linha x:=excel.ActiveCell.Row; //Pegar o número da última coluna y:=excel.ActiveCell.Column; //Seta Stringgrid linha e coluna AGrid.RowCount:=x; AGrid.ColCount:=y; //Imprimindo valores na primeira grid for i:=1 to x do for j:=1 to uOutput.frmOutput.stgrdOutput1.ColCount-1 do uOutput.frmOutput.stgrdOutput1.cells[j,i]:=planilha2.cells[i+1,j+1]; end; excel.Application.DisplayAlerts:= False; Excel.WorkBooks[1].Close; excel.quit; Excel := Unassigned; planilha2 := Unassigned; except Application.MessageBox('Unknown error during conversion. '+ 'Please, verify your MS-Excel files.','Error',MB_OK + MB_ICONEXCLAMATION); end; Screen.Cursor:=crDefault; end; function XlsToStringGrid2(AGrid: TStringGrid; AXLSFile: string): Boolean; const xlCellTypeLastCell = $0000000B; var excel,planilha2, planilha1: variant; i, j, x, y, l, c, cont: integer; begin //cursor tempo comunicar ao usuário para que ele aguarde enquanto o formulário está sendo carregado mudando o cursor para ampulheta try Screen.Cursor:=crHourglass; //abrindo o arquivo excel:=CreateOleObject('Excel.Application'); // cria uma aplicação do Excel //--IMPORTANTO PARA 2ª GRID. begin excel.workbooks.open(AXLSFile);//Abre o exel //Abrindo primeira planilha planilha2:=excel.workbooks[1].WorkSheets[2]; planilha2.Cells.SpecialCells($0000000B, EmptyParam).Activate; //Pegar o número da última linha x:=excel.ActiveCell.Row; //Pegar o número da última coluna y:=excel.ActiveCell.Column; //Seta Stringgrid linha e coluna AGrid.RowCount:=x; AGrid.ColCount:=y; //Imprimindo valores na primeira grid for i:=0 to x do for j:=0 to y do uOutput.frmOutput.stgrdOutput2.cells[j,i]:=planilha2.cells[i+1,j+1]; end; //cursor normal excel.Application.DisplayAlerts:= False; Excel.WorkBooks[1].Close; excel.quit; Excel := Unassigned; planilha2 := Unassigned; except Application.MessageBox('Unknown error during conversion. '+ 'Please, verify your MS-Excel files.','Error',MB_OK + MB_ICONEXCLAMATION); end; Screen.Cursor:=crDefault; end; Adicionei ao formshow o procedimento para chamar a função, da seguinte forma: procedure TfrmOutput.FormShow(Sender: TObject); var i,j:integer; maxmatrizdados:array of array of single; begin if OpenDialog1.Execute then Begin XlsToStringGrid1(stgrdOutput1, OpenDialog1.FileName); XlsToStringGrid2(stgrdOutput2, OpenDialog1.FileName); End else begin Screen.Cursor:=crDefault; //cursor padrão do delphi Exit; end; operacao:=false;

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!