Ir para conteúdo
Fórum Script Brasil
  • 0

Erro ao exportar para Excel


robinhocne

Pergunta

Bom dia Pessoal, estou com um probleminha aqui que não estou conseguindo resolver.

Uso o TAdvStringGrid da TMS e em consequência utilizo o TAdvGridExcelIO para exportar tudo para excel, mas estou com um problema que tenho uma analise com várias linhas e ao exportar está dando esse erro :

List index out of bounds (65536)

Creio que esteja estourando as linhas, mas como posso resolver ?

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

List index out of bounds (65536)

Creio que esteja estourando as linhas, mas como posso resolver ?

realmente está ultrapassando o limite de linhas do excel

nesse caso, se ultrapassar esse limite voce deve inserir o restante dos dados em uma nova planilha

Plan1, Plan2, Plan3 .... etc

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

exemplo

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses ComObj;

procedure TForm1.Button1Click(Sender: TObject);
var i : integer;
    coluna, linha, linha1 : integer;
    excel: variant;
    valor: integer;
begin
   valor := 0;
   try
     // criar uma planilha no Excell
     excel:=CreateOleObject('Excel.Application');
     //adiciona um Workbook com 3 planilhas (Plan1, Plan2 e Plan3)
     excel.Workbooks.add;
   except Application.MessageBox ('Versão do Ms-Excel'+
     'Incompatível','Erro',MB_OK+MB_ICONEXCLAMATION);
   end;

   try
      for linha:=0 to 65900 do
         begin
            if linha <= 65535 then // Limite de linhas na planilha
              begin
               inc(valor);
               for coluna:=1 to 1 do
                   excel.cells [linha+1,coluna]:=valor;
              end
            else
              begin
                // linhas > 65536 passar os dados para a proxima planilha
                Excel.Worksheets['Plan2'].Activate;
                inc(linha1);
                inc(valor);
                for coluna:=1 to 1 do
                    excel.cells [linha1,coluna]:=valor;
              end;
         end;

      excel.columns.AutoFit;
      excel.visible:=true;
   except
      Application.MessageBox ('Erro na Tabela do Ms-Excel','Erro',MB_OK+MB_ICONEXCLAMATION);
   end;

end;


end.

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...