Einzelnen Beitrag anzeigen

Bernhard73

Registriert seit: 4. Jul 2010
36 Beiträge
 
Delphi 11 Alexandria
 
#1

Daten von Excel über das Clipboard in Stringgrid einfügen

  Alt 18. Apr 2014, 17:36
Hallo zusammen,

ich habe da ein Problem, dessen Ursache mir nicht so ganz klar ist. Es geht um das Einfügen von Text aus einer Excel-Tabelle in ein StringGrid. Das ganze soll einfach über die Zwischenablage mittels Copy & Paste erfolgen. Ist Teil eines größeren Programmes, dass bei uns auf der Arbeit eingesetzt wird.

Folgender Code funktioniert bei mir zuhause (Win7 64bit, Excel 2010) exakt so wie ich mir das vorstelle:
Delphi-Quellcode:
procedure PasteFromClipboard(Grid : TStringGrid;ACol, ARow : Integer);
var s,t,u : String;
    x,y,xx : Integer;
begin
  xx:=Grid.Col; x:=xx; y:=Grid.Row;

  s := Clipboard.AsText;
  t:=''; u:='';

  while s <> 'do
  begin
    t := copy(s, 1, pos(#13, s)-1);
    delete(s, 1, pos(#13, s) + 1);

    while t <> 'do
    begin
      if pos(#9,t)>0 then
      begin
        u := copy(t, 1, pos(#9, t)-1);
        delete(t, 1, pos(#9, t));
      end
      else
      begin
        u:=t; t:='';
      end;
      if (x<Grid.ColCount) and (y<Grid.RowCount) then
        Grid.Cells[x,y]:=u;
      inc(x);
    end;
    inc(y);
    x:=xx;
  end;
end;
Auch auf der Arbeit (da hab ich WinXP, Office 2003) klappt das bestens.
Bei einer Arbeitskollegin, die das Programm benutzt (Win7 64 bit, Office 2010) funktioniert das ganze jedoch aus irgendwelchen Gründen nicht. Bei ihr wird offenbar der gesamte Text in eine einzelne Zelle kopiert, bei ansonsten (scheinbar) identischen Ausgangsbedingungen. Dummerweise bräuchte gerade sie die Funktion aber (es geht da um Dienstplanerstellung).

Am Code kann es eigentlich nicht liegen. Am ehesten wäre anzunehmen, das die Formatierung der Daten, die Excel ans Clipboard übergibt, sich unterscheiden. Aber wie gesagt, zuhause bei mir funktioniert das ganze, mit den (scheinbar) gleichen Systemvoraussetzungen (d.h. Win7 64 bit + Office 2010).

Hat da jemand eine zündende Idee?

Danke für Eure Bemühungen,
Bernhard
  Mit Zitat antworten Zitat