|
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
fagundes1999 Novato
Registrado: Segunda-Feira, 18 de Abril de 2022 Mensagens: 1
|
Enviada: Seg Abr 18, 2022 12:46 pm Assunto: Problema de importação do Excel para o Delphi |
|
|
Olá, pessoal! Estou precisando de uma ajuda! Já olhei vários tópicos com possíveis soluções mas nenhum resolveu meu problema!
Estou precisando abrir o excel apartir do Delphi e importar os arquivos de lá. Porém o código que uso sempre dá erro dizendo que "Não foi possível encontrar o arquivo, talvez ele tenha sido renomeado, excluído ou movido?".
Andei pesquisando e vi que um dos problemas poderia ser a falta do Excel na máquina, porém eu tenho o Excel instalado.
Agradeço a atenção de todos!
Segue o código:
rocedure TfrmNomeDoSoftware.importarExcelClick(Sender: TObject);
// aquiiiiiiiiiiii
const
xlCellTypeLastCell = $0000000B;
var
XLSAplicacao, AbaXLS: OLEVariant;
RangeMatrix: Variant;
linhas, colunas, k, r: Integer;
xFileXLS: string;
Result : Boolean;
begin
linhas := 0;
colunas := 0;
Result := False;
// Cria Excel- OLE Object
XLSAplicacao := CreateOleObject('Excel.Application');
try
// Esconde Excel
XLSAplicacao.Visible := False;
// Abre o Workbook
XLSAplicacao.Workbooks.Open(xFileXLS);
{ Selecione aqui a aba que você deseja abrir primeiro - 1,2,3,4.... }
XLSAplicacao.WorkSheets[1].Activate;
{ Selecione aqui a aba que você deseja ativar - começando sempre no 1 (1,2,3,4) }
AbaXLS := XLSAplicacao.Workbooks[ExtractFileName(xFileXLS)].WorkSheets[1];
AbaXLS.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate;
// Pegar o número da última linha
linhas := XLSAplicacao.ActiveCell.Row;
// Pegar o número da última coluna
colunas := XLSAplicacao.ActiveCell.Column;
// Associaca a variant WorkSheet com a variant do Delphi
RangeMatrix := XLSAplicacao.Range['A1', XLSAplicacao.Cells.item[linhas,
colunas]].Value;
{ edtCRazaoSocialEmpresa.Text := RangeMatrix[2 ,1];
edtQtIntervalo.Text := RangeMatrix[2, 2];
edtTempoIntervalo.Text := RangeMatrix[3, 2];
edtTDispTurno.Text := RangeMatrix[4, 2];
edtTempoTotalTurno.Text := RangeMatrix[5, 2]; }
finally ;
{edtCRazaoSocialEmpresa.Text := RangeMatrix[2 ,1];
edtQtIntervalo.Text := RangeMatrix[2, 2];
edtTempoIntervalo.Text := RangeMatrix[3, 2];
edtTDispTurno.Text := RangeMatrix[4, 2];
edtTempoTotalTurno.Text := RangeMatrix[5, 2];}
end;
begin
RangeMatrix := Unassigned;
// Fecha o Microsoft Excel
if not VarIsEmpty(XLSAplicacao) then
begin
XLSAplicacao.Quit;
XLSAplicacao := Unassigned;
AbaXLS := Unassigned;
Result := true;
end;
end; |
|
Voltar ao Topo |
|
|
imex Moderador
Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Ter Abr 19, 2022 4:16 pm Assunto: |
|
|
Boa tarde,
Acho que está faltando atribuir o nome do arquivo para a variável xFileXLS ou troca-la por outra que contenha o nome do arquivo na linha abaixo:
Código: | XLSAplicacao.Workbooks.Open(xFileXLS); |
Espero que ajude |
|
Voltar ao Topo |
|
|
marcieldeg Colaborador
Registrado: Terça-Feira, 5 de Abril de 2011 Mensagens: 1054 Localização: Vitória - ES
|
Enviada: Dom Set 04, 2022 9:27 am Assunto: |
|
|
Porque não usa ADO para abrir o arquivo excel? Assim não é necessário ter o office instalado na máquina. _________________ "Olha a interface da IDE! Será que ela é? Será que ela é? DELPHI!" |
|
Voltar ao Topo |
|
|
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|