![]() |
Unterschied zw. Excel 2010 und 2013 ?
Hallo,
ich habe meine Anwendung, mit der ich über OLE ein Excelsheet öffne (Workbook), auslese und die Daten wieder anders speichere. Das funktioniert mit dem Excel 2010 auf meinem PC (und anderen PCs mit der 2010er Version) einwandfrei. Jetzt ist auf dem Zielsystem aber Excel 2013 installiert. Hier scheint die OLE nicht zu funktionieren, mein Programm konnektiert zwar Excel, aber das Sheet bietet keine Daten an.:pale: Was könnte da anders sein bzw. wie könnte ich das lösen? |
AW: Unterschied zw. Excel 2010 und 2013 ?
Die Antwort lautet wie immer: 42! Mit anderen Worten: Wie soll man dir sagen, was du anders machen müßtest, wenn man gar nicht weiß, was du überhaupt machst? Oder anders ausgedrückt: Ist dein Code so geheim, daß du ihn hier nicht samt Fehlermeldung und der Stelle, an der dieser auftritt, offenbaren kannst?
|
AW: Unterschied zw. Excel 2010 und 2013 ?
Zitat:
* z.B. Office-Installation ohne OLE * z.B. Office-Paket ohne OLE * z.B. Fehler in der .NET Framework Installation |
AW: Unterschied zw. Excel 2010 und 2013 ?
Oder die 64Bit Version von Office
|
AW: Unterschied zw. Excel 2010 und 2013 ?
Zitat:
Zur Liste von Lemmy wäre noch folgendes zu ergänzen: - Ist die Installation aktiviert? - Ist es eine Updateinstallation. Also war zu vor eine älter Excelversion drauf die aktualisiert wurde ohne sie vorher vollständig zu deinstallieren. Ansonsten: Der Fehler ist in der 42 Zeile |
AW: Unterschied zw. Excel 2010 und 2013 ?
Zitat:
Gruß K-H |
AW: Unterschied zw. Excel 2010 und 2013 ?
Hallo und sorry, daß ich erst jetzt antworte, hatte noch was anderes zu bearbeiten :wink:
Sorry auch für keinen-Einblick, ich hatte beim Frage-stellen meinen Quelltext nicht parat :oops: Es geht darum, die Spalten auszulesen und in ein Grid zur Weiterverwendung zu kopieren.
Delphi-Quellcode:
Das Problem müsste also im OpenExcel stecken, weil bei Version 2010 gehts, bei Version 2013 nicht (zumindest am Zielrechner ist das so). :?
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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:39 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