AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Excel und Delphi

Ein Thema von Maa83 · begonnen am 2. Mai 2007 · letzter Beitrag vom 7. Mai 2007
Antwort Antwort
Seite 1 von 3  1 23      
Maa83

Registriert seit: 7. Nov 2002
220 Beiträge
 
Delphi 10.3 Rio
 
#1

Excel und Delphi

  Alt 2. Mai 2007, 08:55
Hi,

ich exportiere Daten von Delphi nach Excel. Nun gibt es Fälle in denen ich 10-stellige Nummern die in Delphi als String gelesen werden übergeben möchte. Diese Nummern haben führende 0en. Diese Nummer wird in Excel als Zahl erkannt und die führenden 0en werden abgeschnitten.

z.B.
0000123789 in Delphi wird zu 123789 in Word

Die Methode
"ExcelApplication.Workbooks.OpenText"

hat als Parameter auch die Datentypen der einzelnen Spalten. Dies scheint Excel bei der Übergabe jedoch zu ignorieren.

Ich habe auch versucht ein ' vor die Zahl zu hängen damit Excel es als Text erkennt. In Excel direkt sieht man das ' dann ja nicht mehr. Bei der Übergabe zeigt er es aber an. Dies darf natürlich nicht sein.

Das selbe Problem habe ich mit Feldern die mit + oder - Anfangen. Hier kommt dann in Excel #NAME?

Delphi 6 Enterprise
Excel97 oder Excel2000 (hab schon beides probiert, kommt aber aufs gleiche raus)

ich hoffe es kann mir jemand helfen.
Martin
  Mit Zitat antworten Zitat
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

Re: Excel und Delphi

  Alt 2. Mai 2007, 09:19
wie arbeitest du mit excel, also über ole oder etwas anderem???

wie ist das feld/spalte in excel definiert, als text oder zahl???
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat
hflick

Registriert seit: 18. Aug 2005
Ort: Witten, Germany
43 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

Re: Excel und Delphi

  Alt 2. Mai 2007, 10:22
Zitat von Maa83:
Hi,

ich exportiere Daten von Delphi nach Excel. Nun gibt es Fälle in denen ich 10-stellige Nummern die in Delphi als String gelesen werden übergeben möchte. Diese Nummern haben führende 0en. Diese Nummer wird in Excel als Zahl erkannt und die führenden 0en werden abgeschnitten.
Wenn Du '00003 sendest, sollte das Problem behoben werden, da Strings mit ' in Excel gekennzeichnet werden.
Dr. Holger Flick
  Mit Zitat antworten Zitat
Maa83

Registriert seit: 7. Nov 2002
220 Beiträge
 
Delphi 10.3 Rio
 
#4

Re: Excel und Delphi

  Alt 2. Mai 2007, 14:05
@hflick: das funktioniert, wie ich etwas weiter unten geschrieben habe, leider nicht. Das ' wird mit angezeigt. Es steht dann in der Zelle '0003. Erst wenn ich manuell dieses Feld in Excel bearbeite und wieder verlasse (mit Enter) dann merkt Excel das er das Hochkomma nicht mit anzeigen soll.

@Andidreas: ja, mit OLE. Excel erkennt den übergebenen Wert als Zahl obwohl ich ihm bei der Methode ExcelApplication.Workbooks.OpenText mitgeben das es ein Text ist.
Martin
  Mit Zitat antworten Zitat
hflick

Registriert seit: 18. Aug 2005
Ort: Witten, Germany
43 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#5

Re: Excel und Delphi

  Alt 2. Mai 2007, 14:06
Zitat von Maa83:
@hflick: das funktioniert, wie ich etwas weiter unten geschrieben habe, leider nicht. Das ' wird mit angezeigt. Es steht dann in der Zelle '0003. Erst wenn ich manuell dieses Feld in Excel bearbeite und wieder verlasse (mit Enter) dann merkt Excel das er das Hochkomma nicht mit anzeigen soll.
Hmm... probiere mal " in der deutschen Version. Ich weiss, dass ich das vor Jahren mal aus Lotus Notes heraus so gemacht habe...
Dr. Holger Flick
  Mit Zitat antworten Zitat
Maa83

Registriert seit: 7. Nov 2002
220 Beiträge
 
Delphi 10.3 Rio
 
#6

Re: Excel und Delphi

  Alt 2. Mai 2007, 14:14
klappt leider auch nicht.

wenn ich den Wert in "" stelle, also "0003" dann ignoriert er das einfach. Macht daraus also auch einfach 3

Wenn ich nur ein " davor Stelle klappt das ganze auch nicht.
Martin
  Mit Zitat antworten Zitat
hflick

Registriert seit: 18. Aug 2005
Ort: Witten, Germany
43 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#7

Re: Excel und Delphi

  Alt 2. Mai 2007, 16:23
Zitat von Maa83:
klappt leider auch nicht.

wenn ich den Wert in "" stelle, also "0003" dann ignoriert er das einfach. Macht daraus also auch einfach 3

Wenn ich nur ein " davor Stelle klappt das ganze auch nicht.
Also Delphi/Win32? Ich schaue mal...
Dr. Holger Flick
  Mit Zitat antworten Zitat
Maa83

Registriert seit: 7. Nov 2002
220 Beiträge
 
Delphi 10.3 Rio
 
#8

Re: Excel und Delphi

  Alt 2. Mai 2007, 16:33
ja, Delphi6/Win32

wär super wenn du mir helfen könntest
Martin
  Mit Zitat antworten Zitat
hflick

Registriert seit: 18. Aug 2005
Ort: Witten, Germany
43 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#9

Re: Excel und Delphi

  Alt 2. Mai 2007, 18:31
Zitat von Maa83:
ja, Delphi6/Win32

wär super wenn du mir helfen könntest
Ja, gerne. Breche mir gerade nur unter Win32 die Finger. Werde das wohl mit .NET machen, um rauszubekommen, was nun erforderlich ist....
Dr. Holger Flick
  Mit Zitat antworten Zitat
hflick

Registriert seit: 18. Aug 2005
Ort: Witten, Germany
43 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#10

Re: Excel und Delphi

  Alt 2. Mai 2007, 21:20
Zitat von Maa83:
ja, Delphi6/Win32

wär super wenn du mir helfen könntest
So, habe mir das mal angesehen. Das Property der Zelle heisst "Value2" -- warum auch immer. Dem weise ich einfach '00003 zu und es geht. Ich habe hier nen englisches Excel, das einzige was noch sein kann, dass Du " benutzen musst. Ich denke jedoch, das Property ist wichtig...

Hier der komplette Code meiner Unit. Das Formular ist nur nen Button... Ich habe das gesamte Projekt angehängt.

Delphi-Quellcode:
unit uMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, System.ComponentModel, Borland.Vcl.StdCtrls,
  Microsoft.Office.Interop.Excel, System.Reflection;

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

var
  Form1: TForm1;

implementation

{$R *.nfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  lApp: ApplicationClass;
  empty: System.&Object;

begin
  lApp := ApplicationClass.Create;

  empty := System.&Type.Missing;

  lApp.Workbooks.Add(empty);
  lApp.Visible := True;
  lApp.ActiveCell.Value2 := '''000000003';
end;

end.
Angehängte Dateien
Dateityp: zip exceltestnet_619.zip (12,9 KB, 10x aufgerufen)
Dr. Holger Flick
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 10:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz