Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Amigos, primeiramente peço desculpas por citar o nome de um usuario no titulo do tópico..
Seguinte...
Achei um código para carregar dados de uma planilha excel para dentro do Delphi, feito pelo marcio.theis... segue o código
function XlsToStringGrid(AGrid: TStringGrid; AXLSFile: string): Boolean;
const
xlCellTypeLastCell = $0000000B;
var
XLApp, Sheet: OLEVariant;
RangeMatrix: Variant;
x, y, k, r: Integer; XLApp.Visible:=False;
//Abre o Workbook
XLApp.Workbooks.Open(AXLSFile);
Sheet:=XLApp.Workbooks[ExtractFileName(AXLSFile)].WorkSheets[1];
Sheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate;
//Pegar o número da última linha
x:=XLApp.ActiveCell.Row;
//Pegar o número da última coluna
y:=XLApp.ActiveCell.Column;
//Seta Stringgrid linha e coluna
AGrid.RowCount:=x;
AGrid.ColCount:=y;
//Associaca a variant WorkSheet com a variant do Delphi
RangeMatrix:=XLApp.Range['A1', XLApp.Cells.Item[X, Y]].Value;
//Cria o loop para listar os registros no TStringGrid
k:=1;
repeat
for r:=1 to y do
AGrid.Cells[(r - 1),(k - 1)]:=RangeMatrix[K, R];
Inc(k,1);
until k > x;
RangeMatrix:=Unassigned; XLApp.Quit;
XLAPP:=Unassigned;
Sheet:=Unassigned;
Result:=True;
end;
end;
end;XLApp:=CreateOleObject('Excel.Application');
o erro é
MensagemEnviada: 28 Jul 2009 20:44 Assunto: Responder com Citação Editar/Remover esta mensagem Excluir esta mensagem
Lego,
duas coisas:
deu erro logo na segunda linha
Código:
XLApp:=CreateOleObject('Excel.Application');
o erro: Sequencia de Classe Inválida,ProgId : "Excel.Application"
Alguém pode me dar um help?
Desde já grato
já fiz uses dessa classe... nao funfa.
será q é pq eu nao tenho o excel instalado no meu pc? Aqui eu tenho o BROffice.
Amigo, este código é para usar em Planilhas do Excel da Microsoft... na linha XLApp:=CreateOleObject('Excel.Application'); , você está dizendo para o seu compilador criar um objeto OLE que simule uma aplicação do Excel... logo, para que isso funcione, você obrigatoriamente tem que ter o Excel instalado na máquina onde está rodando a aplicação...
[]'s
Bom Dia, eu tenho esse mesmo problema:
Cadeia de caracteres de classe inválida, ProgID: "Excel.Application"
, nesta mesma linha:
try
ExcApp := GetActiveOleObject('Excel.Application');
except
try
// If no instance of Word is running, try to Create a new Excel Object
ExcApp := CreateOleObject('Excel.Application');
except on E : Exception do
begin
XMsgError('Microsoft Excel não instalado/não encontrado.'+#13#10+
e.Message);
Exit;
end
end;
end;
Não está funcionando em uma máquina que tem o Office Excel 2013 ( C:\Program Files\Microsoft Office 15\root\office15\excel.exe ) .
Nas outras versões funciona sem problemas ( 2000, 2003 e 2007 ).
Alguém tem alguma ideia do que possa ser?
Desde já agradeço,
Vou procurar mais sobre e posto aqui mais tarde.
A um bom tempo atrás, eu criei uma rotina que me permitia exportar dados do dbgrid para o excel, gerando planilhas quando necessário... a forma que criei está neste link: http://forum.imasters.com.br/topic/314555-resolvidoexportao-de-dados-para-excel/
Quanto ao problema enfrentado pelo rodrigod6, vendo o código que ele postou aqui não consegui encontrar onde é gerada a mensagem que ele relata... mas ai há alguns pontos a considerar que podem estar influenciando no problema: a primeira seria a versão do Delphi que está utilizando, que pode não dar suporte as versões mais recentes do excel (aqui é uma suposição)... outra questão poderia ser incompatibilidade entre versões do seu programa com o excel (por exemplo, você compilar em 64 bits e usar numa máquina de 32 bits ou o contrário)... há um post sobre isso neste link: http://answers.microsoft.com/en-us/office/forum/office_2010-customize/problem-with-com-objects-with-office-2010/b6003b67-2050-4683-a660-18f1156fe388
Declare ComObj no Uses do seu formulário.
Abraços.
>
Amigos, primeiramente peço desculpas por citar o nome de um usuario no titulo do tópico..
Seguinte...
Achei um código para carregar dados de uma planilha excel para dentro do Delphi, feito pelo marcio.theis... segue o código
function XlsToStringGrid(AGrid: TStringGrid; AXLSFile: string): Boolean;
const
xlCellTypeLastCell = $0000000B;
var
begin
Result:=False;
//Cria Excel- OLE Object
XLApp:=CreateOleObject('Excel.Application');
try
//Esconde Excel
finally
//Fecha o Excel
if not VarIsEmpty(XLApp) then
begin
Só que para mim já dá erro logo nesta linha
XLApp:=CreateOleObject('Excel.Application');
o erro é
MensagemEnviada: 28 Jul 2009 20:44 Assunto: Responder com Citação Editar/Remover esta mensagem Excluir esta mensagem
Lego,
duas coisas:
deu erro logo na segunda linha
Código:
XLApp:=CreateOleObject('Excel.Application');
o erro: Sequencia de Classe Inválida,ProgId : "Excel.Application"
Alguém pode me dar um help?
Desde já grato