23. April 2009 15:56
23. April 2009 15:59
23. April 2009 16:02
23. April 2009 16:09
DeDeMarco hat geschrieben:das Problem liegt meiner Ansicht nach nicht am Excel Buffer selber.
23. April 2009 16:13
ExcelBuffer.OpenBook('c:\\test\test.xls','test');
ExcelBuffer.ReadSheet; <<< hier passiert es schon
IF ExcelBuffer.FIND('+') THEN
CountRows:=ExcelBuffer."Row No.";
23. April 2009 16:18
DeDeMarco hat geschrieben:ExcelBuffer.ReadSheet; <<< hier passiert es schon
23. April 2009 16:21
23. April 2009 16:26
DeDeMarco hat geschrieben:Gibt es eine Möglichkeit da etwas zu tun ?
23. April 2009 16:32
Natalie hat geschrieben:DeDeMarco hat geschrieben:Gibt es eine Möglichkeit da etwas zu tun ?
Wie viele Zeichen stehen denn in deinem schuldigen Excel-Feld? Das Excelbuffer-Feld muss entsprechend verlängert werden. Ich weiß allerdings nicht, welche Seiteneffekte das hat.
Kann man deinen Wert in Excel nicht vielleicht kürzen, runden ...?
23. April 2009 17:10
DeDeMarco hat geschrieben:Ich hätte mir vorgestellt, das er das betreffende Feld einfach erstmal ignoriert beim einlesen, dass der Rest wenigstens vernünftig durch geht.
..
IF STRLEN(DELCHR(FORMAT(XlWrkSht.Range(xlColID + xlRowID).Value),'<',' ')) > MAXSTRLEN("Cell Value as Text") THEN // neu
"Cell Value as Text" := COPYSTR(DELCHR(FORMAT(XlWrkSht.Range(xlColID + xlRowID).Value),'<',' ')1, MAXSTRLEN("Cell Value as Text")) // neu
ELSE // neu
"Cell Value as Text" := DELCHR(FORMAT(XlWrkSht.Range(xlColID + xlRowID).Value),'<',' '); // alt
..
23. April 2009 17:33
18. Oktober 2010 13:01
Natalie hat geschrieben:DeDeMarco hat geschrieben:Ich hätte mir vorgestellt, das er das betreffende Feld einfach erstmal ignoriert beim einlesen, dass der Rest wenigstens vernünftig durch geht.
Kannst ja mal folgendes ausprobieren:
Tabelle Excel Buffer, Funktion ReadSheet
- Code:
..
IF STRLEN(DELCHR(FORMAT(XlWrkSht.Range(xlColID + xlRowID).Value),'<',' ')) > MAXSTRLEN("Cell Value as Text") THEN // neu
"Cell Value as Text" := COPYSTR(DELCHR(FORMAT(XlWrkSht.Range(xlColID + xlRowID).Value),'<',' ')1, MAXSTRLEN("Cell Value as Text")) // neu
ELSE // neu
"Cell Value as Text" := DELCHR(FORMAT(XlWrkSht.Range(xlColID + xlRowID).Value),'<',' '); // alt
..
Nicht getestet, also ohne Garantie und Gewähr
IF STRLEN(DELCHR(FORMAT(XlWrkSht.Range(xlColID + xlRowID).Value),'<',' ')) > MAXSTRLEN("Cell Value as Text") THEN
"Cell Value as Text" := COPYSTR(
DELCHR(FORMAT(XlWrkSht.Range(xlColID + xlRowID).Value) ,'<',' '),1, 250) //
ELSE // neu
"Cell Value as Text" := DELCHR(FORMAT(XlWrkSht.Range(xlColID + xlRowID).Value),'<',' ');
18. Oktober 2010 13:10