Jump to content
Fórum Script Brasil
  • 0

Erro ao exportar para Excel


robinhocne
 Share

Question

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 to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.8k
    • Total Posts
      646.6k
×
×
  • Create New...