Seite 1 von 1

maximale Zeichen pro Zelle

Verfasst: Sa, 04.07.2015 23:31
von loveopenoffice
Hi!

hoffe jemand weiß Rat !

Möchte große Datensätze mit Calc bearbeiten.

Der Zeichensatz pro Zelle kann größer als 45.000 Zeichen sein, allerdings schneidet OpenOffice Calc selbst dies
ab, so dass nicht mal 45.000 Zeichen pro Zelle verarbeitet werden. Dachte es seien mindestens 65.000 Zeichen
erlaubt.

Wie kann man dies bearbeiten?

Kann man die erlaubten Zeichen pro Zelle erhöhen?

Ich hätte gerne 100.000 Zeichen pro Zelle und in der Zeile seöbst mehr als 150.000, dies über mehr als 100 Zeilen.

Kann man dies realisieren? Ich habe leider keine Möglichkeit gefunden.

Danke im Voraus!

MfG

Re: maximale Zeichen pro Zelle

Verfasst: So, 05.07.2015 07:27
von Stephan
Dachte es seien mindestens 65.000 Zeichen
erlaubt.
in OpenOffice 4.1.1 komme ich auf 65535 Zeichen, also 64k.
Kann man die erlaubten Zeichen pro Zelle erhöhen?
nein.
Ich hätte gerne 100.000 Zeichen pro Zelle und in der Zeile seöbst mehr als 150.000, dies über mehr als 100 Zeilen.

Kann man dies realisieren?
nein, zumal ich schon bei einer Zelle mit benannten 65535 Zeichen merke wie träge das Programm dabei wird.



Gruß
Stephan

Re: maximale Zeichen pro Zelle

Verfasst: So, 05.07.2015 08:24
von Karolus
Hallo
Möchte große Datensätze mit Calc bearbeiten.
Calc ist eine Tabellenkalkulation und keine spezielle Textverarbeitung → du benutzt das falsche Werkzeug.



Karolus

Re: maximale Zeichen pro Zelle

Verfasst: So, 05.07.2015 08:38
von clag
Hallo loveopenoffice,

Stephan und auch Karolus haben ja schon geantwortet wo die Grenzen von OO Calc liegen.

Was mich jetzt einmal interessieren würde ist, welchen Anwendungsfall gibt es, der deinen Wunsch begründet?
Was will jemand mit 20 randvoll gefüllten A4 Seiten Text in einer Zelle anstellen?
Lesen macht wohl eher wenig Sinn, eine Formel wird es auch nicht sein, was treibt denjenigen zu solchen Wünschen?
Vielleicht gibt es ja auch eine andere Lösung um dein Anliegen zu erreichen.

Ich bin da echt neugierig?

Re: maximale Zeichen pro Zelle

Verfasst: So, 05.07.2015 11:56
von Stephan
ob es überhaupt sinnvoll ist calc so zu benutzen wie es der Threadstarter möchte weiß ich nicht, weil ich aber über das von clag Gefragte nachgedacht habe fiel mir ein das eine mögliche Lösung garnicht so schwierig ist wenn man das per Makro macht, deshalb habe ich eine grundlegende Lösung einmal schnell zusammengeschrieben, basierend auf:
http://www.calc-info.de/makros.htm#cafo

Wie kann man das testen?
Beide Dateien herunterladen ins selbe Verzeichnis kopieren und die ods-Datei öffnen (Ausführung von Makros muss zugelassen sein), nach dem Öffnen kann man durch Doppelklick beliebige Zellen bearbeiten.

Hierbei die beispielhafte Zelle A1 beachten, dort steht nur der Text:

Er hörte leise Schritte hinter sich. Das bedeutete nichts Gutes. Wer würde ihm schon folgen, spät in [...]

trotzdem wird der komplette Text geladen, weil der aus einem Bereich der odt-Datei gelesen wird.

Sicher ist noch Einiges zu verbessern aber im Prinzip funktioniert das Ganze.

Der Code ist:

Code: Alles auswählen

Global arbeiten As Boolean
Global aktuelle_datendatei As Object
Global tc As Object

Dim edit_bib As Object
Dim edit_dialog As Object
Dim sel As Object

Global x3 


Sub Lade_datendatei()
	k = ""
	tc = ThisComponent
	tmp = tc.GetLocation
	tmp1 = Split(tmp, "/")
	For i = 0 To Ubound(tmp1())-1
		k = k & tmp1(i) & "/"
	Next i 
	tmp2 = Split(tmp1(UBOUND(tmp1())), ".")
	If FileExists(k & tmp2(0) & ".odt") Then
		aktuelle_datendatei = StarDesktop.loadComponentFromUrl(k & tmp2(0) & ".odt", "_blank", 0, ARRAY())
		Wait 100
		tc.CurrentController.Frame.ContainerWindow.toFront
		arbeiten = 1
		Msgbox "OK, Datendatei ist geladen"
	Else
		Msgbox "keine passende DatenDatei gefunden"
		arbeiten = 0
	End If
End Sub

Sub formel_editieren()
	If arbeiten = False Then
		Exit Sub
	End If
	
  sel = ThisComponent.getCurrentSelection
  If sel.SupportsService("com.sun.star.sheet.SheetCell") Then
      BasicLibraries.LoadLibrary("Standard")
      DialogLibraries.LoadLibrary("Standard")
      edit_bib = DialogLibraries.Standard.Dialog1
      edit_dialog = CreateUnoDialog(edit_bib)
      x = sel.AbsoluteName
      x1 = Split(x, ".")
      x2 = Split(x1(1),"$")
      x3 = Join(x2(),"")
      
      If aktuelle_datendatei.getTextSections().hasByName(x3) Then
			tb_anchor =  aktuelle_datendatei.getTextSections().getByName(x3).getAnchor
			cur1 = aktuelle_datendatei.Text.createTextCursorByRange(tb_anchor)
			akt_text = cur1.String
		Else
			akt_text = sel.FormulaLocal
    End If

      With edit_dialog
        .title = "Text in Zelle " & x3 & " editieren "
        .getControl("TextField1").Text = akt_text
        .Execute()
      End With
    Else
      Msgbox ("Bitte nur eine einzelne Zelle markieren",16,"Abbruch")
      Exit Sub
  End If
  
End Sub

Sub formel_uebernehmen
  If aktuelle_datendatei.getTextSections().hasByName(x3) Then
  		tb_anchor =  aktuelle_datendatei.getTextSections().getByName(x3).getAnchor
		cur1 = aktuelle_datendatei.Text.createTextCursorByRange(tb_anchor)
		cur1.String = edit_dialog.getControl("TextField1").Text
  	Else
  		vcur = aktuelle_datendatei.Text.CreateTextCursor
  		vcur.GotoEnd(False)
  		
  		tb_objekt = aktuelle_datendatei.createInstance("com.sun.star.text.TextSection")
		tb_objekt.setName(x3)
		aktuelle_datendatei.Text.insertTextContent(vcur, tb_objekt, false )
		tb_anchor =  aktuelle_datendatei.getTextSections().getByName(x3).getAnchor
		cur1 = aktuelle_datendatei.Text.createTextCursorByRange(tb_anchor)
		cur1.String = edit_dialog.getControl("TextField1").Text
  End If
  
  If LEN(edit_dialog.getControl("TextField1").Text) >= 100 Then
		sel.FormulaLocal = LEFT(edit_dialog.getControl("TextField1").Text, 100) & " [...]"
	Else
		sel.FormulaLocal = edit_dialog.getControl("TextField1").Text
  End If
  
  edit_dialog.EndExecute()
End Sub
Gruß
Stephan

Re: maximale Zeichen pro Zelle

Verfasst: So, 05.07.2015 13:09
von balu
Hallo loveopenoffice,
allerdings schneidet OpenOffice Calc selbst dies
ab, so dass nicht mal 45.000 Zeichen pro Zelle verarbeitet werden.
Da scheint sich wohl irgendein *Verbotenes* Zeichen im einzufügenden Text versteckt zu haben. Ich weiß jetzt nicht welches Zeichen genau, aber es gibt welche die Calc dazu veranlasst den Text nach diesem Zeichen einfach abzuschneiden.

Es kann aber genau so gut eine bestimmte Zeichenkombination sein, das den Textschnitt verursacht. Denn ich wollte mal einen HTML-Quelltext einfügen, und sah das gar nicht alles eingefügt wurde. Und bei genauerer Betrachtung stellte ich fest, das der Übeltäter eine bestimmte Zeichenkombination war. Irgendwas mit /><A, oder so ähnlich, weiß es aber nicht mehr so genau, da schon ein paar Jahre her.


Also wenn Du unbedingt bei Calc bleiben willst, muss vorher abgeklärt werden um was für einen Text es sich dabei handelt der eingefügt werden soll. Und damit meine ich, ist es z.B. HTML-Quelltext, oder Text aus einem anderen Program, oder ....? Und wenn das abgeklärt ist, kann man über weitere Schritte nachdenken.


Mir fällt da grad eben wieder etwas ein, was hiermit zu tun hatte.
Ist auch schon einn paar Jahre her da hatte einer Problem mit Texteinfügen in Calc. Jedoch war der Text auch nicht vollständig und außerdem sehr "unschön" formatiert. Erst als man den Text im Writer einfügte und dort die Steuerzeichen aktivierte, sah man wo das Problem war. Das hatte irgendwas mit "Geschützem Leerzeichen" zu tun. Und nach dem dieses "Geschütze Leerzeichen" entfernt wurde, war alles in Ordnung.

Du siehst, es gibt genügend Stolperfallen die das Texteinfügen verhindern beziehungsweise vermiesen können. Um so wichtiger ist es bei so einer sehr großen Datenmenge mehr über die Quelle des Textes zu wissen.



Gruß
balu