Ir ao conteúdo
  • Cadastre-se

cinha

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

Reputação

0
  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!