AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Unterschied zw. Excel 2010 und 2013 ?
Thema durchsuchen
Ansicht
Themen-Optionen

Unterschied zw. Excel 2010 und 2013 ?

Ein Thema von SearchBot · begonnen am 27. Mär 2015 · letzter Beitrag vom 1. Apr 2015
 
SearchBot

Registriert seit: 27. Jun 2004
Ort: N-W vom Bodensee
326 Beiträge
 
Delphi 12 Athens
 
#7

AW: Unterschied zw. Excel 2010 und 2013 ?

  Alt 1. Apr 2015, 12:54
Hallo und sorry, daß ich erst jetzt antworte, hatte noch was anderes zu bearbeiten
Sorry auch für keinen-Einblick, ich hatte beim Frage-stellen meinen Quelltext nicht parat

Es geht darum, die Spalten auszulesen und in ein Grid zur Weiterverwendung zu kopieren.

Delphi-Quellcode:
procedure TForm1.bt_ExcelConvertClick(Sender: TObject);
//http://www.swissdelphicenter.ch/de/showcode.php?id=156
Const
  xlCellTypeLastCell = $0000000B;
  xlUp = 3;
  xlTextWindows=20;

var
  ColumnRange: OleVariant;
  ExcelApp, Sheet: OleVariant;
  Matrix: Variant;
  ex:TSortGrid;
  x,y,i:integer;
  clip:TClipBoard;
  ExRan:boolean; //lief Excel zuvor? Dann nicht schließen!

function OpenExcel(filename:string):integer; //Rückgabe: Anzahl Zeilen
begin
  try
   ExcelApp.Workbooks.Open(Filename);

   Sheet:=ExcelApp.Workbooks[1].WorkSheets[1];
   Sheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate;
    // Get the value of the last row
   result := ExcelApp.ActiveCell.Row;
  except
   result:=0;
  end;
end;

begin
  { Start Excel }
  Memo1.Lines.Add('Kontaktiere Excel...');
  try
    ExcelApp := GetActiveOleObject('Excel.Application');
    ExRan:=true;
  except
    ExRan:=false;
    try
      ExcelApp := CreateOleObject('Excel.Application');
    except
      Memo1.Lines.Add('...gescheitert.');
      ShowMessage(ExcelNichtDa);
      ExcelStatus:=0;
      Exit;
    end;
  end;
  Memo1.Lines.Add('...erfolgreich!'#13);
   ExcelStatus:=2;

   ex:=TSortGrid.createParented(Form1.Handle);

{...}
       x:=OpenExcel(edit1.Text);

       if x>0 then begin
        ex.RowCount := x;
        ex.ColCount := 5;

        clip:=TClipBoard.Create;
        Memo1.Lines.Add('Extrahiere Daten...');
        ExcelApp.Range['A1','A1'].EntireRow.Delete(xlUp);

        for I := 1 to ex.ColCount do begin
         ExcelApp.Range[chr(ord('A')+(i-1))+inttostr(i),chr(ord('A')+(i-1))+inttostr(i)].EntireColumn.Copy(EmptyParam);
         ex.Cols[i-1].text:=Clip.asText;
         Application.ProcessMessages;
        end;
{...}
       end else showError; //also Tabelle hat keinen Inhalt, blabla
Das Problem müsste also im OpenExcel stecken, weil bei Version 2010 gehts, bei Version 2013 nicht (zumindest am Zielrechner ist das so).
  Mit Zitat antworten Zitat
 

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz