Zoeken en vervangen van achtergrondkleur in tabellen

Ik heb een document met honderden tabellen. En in bijna elke tabel staan meerdere tabelcellen met als achtergrondkleur lichtgrijs (in het palet de tweede kleur grijs rechtsboven).
Het blijkt nu pas dat die grijstint bij het printen nauwelijks te zien is. De derde tint daarentegen is wel duidelijk zichtbaar.
Met zoeken en vervangen is het wel mogelijk om opmaakattributen van tekst te bewerken maar ik zie nergens de mogelijkheid om de achtergrondkleur van een cel aan te passen.
Is er ook een truc om automatisch die kleur te wijzigen?

Ben

Als het goed is heb je die tabellen een opmaakprofiel gegeven met die achtergrondkleur. Als je de achtergrondkleur in dat opmaakprofiel aanpast, dan verandert die kleur in alle tabellen met dat opmaakprofiel.

Voor wat betreft de tabel opmaakprofielen: Ik had al eerder geprobeerd om tabel opmaakprofielen te gebruiken maar
a. Ik kwam pas te weten van het bestaan van opmaakprofielen nadat ik al veel tabellen handmatig had aangemaakt en bewerkt, en
b. Nadat ik een tabel opmaakprofiel had gemaakt op basis van een voorbeeld en vervolgens een tabel aanmaakte op basis van dit profiel kreeg ik toch een afwijkende tabel.
Ik moet nog uitzoeken wat hier fout ging.

De tabelcellen met de afwijkende achtergrondkleur staan zelden op dezelfde plaats; ik kan ze niet in een profiel opnemen.
In een testdocument heb ik gekeken hoe die cellen in het .odf bestand teruggevonden kunnen worden. Nadat ik dat bestand geunzipt heb zag ik dat in het bestand content.xml de volgende tekst terug: fo:background-color="#b2b2b2".

Het lijkt me zinvol om te kijken of het lukt om in dat bestand met zoeken/vervangen die kleurcode te wijzigen en te kijken of ik vervolgens weer een functioneel .odf-bestand terugkrijg.

Is dit een werkbare oplossing?

Sorry, maar dit weet ik niet.

Ik weet ook niet direct een oplossing.

Auto-opmaak is ook misschien wel een hulpmiddel.

Nadat ik een tabel opmaakprofiel had gemaakt op basis van een voorbeeld en vervolgens een tabel aanmaakte op basis van dit profiel kreeg ik toch een afwijkende tabel.

Het is niet zo duidelijk of je gewerkt hebt met Auto-opmaak. Er is niet zoveel beschrijving hoe dat werkt. Ik weet deze Auto-opmaak. Het moet ook in de handleiding staan maar niet in de helpfile.

Ik heb in een testdocument een tabel aangemaakt, 2 kolommen, 2 rijen. De cel rechtsboven kreeg de achtergrondkleur lichtgijs.
Het testdocument kan ik in linux gewoon openen met archiver en unzippen. Een van de bestanden in de zip is content.xml.
Op het hoogste niveau zie ik dat er een XML-element is met de naam office:automatic-style. In dat XML-element zijn er ook voor elke cel style:style elementen (ook voor lege cellen) en wanneer relevant, dan heeft zo’n style-element het attribuut fo:background-color. Daarin wordt de kleur vastgelegd.
Dit is het xml-element voor de cel rechtsboven:

<style:style style:name="KleurTest.B1" style:family="table-cell">
<style:table-cell-properties fo:background-color="#cccccc" fo:padding="0cm" fo:border="none" style:writing-mode="page">
<style:background-image/>
</style:table-cell-properties>
</style:style>

Lichtgrijs blijkt de kleurcodering #cccccc te hebben. In het XML-bestand heb ik die codering veranderd en daarna het zipbestand aangepast.
Het aangepaste .odt-bestand kan gewoon geopend worden en de lichtgrijze cel heeft nu een andere kleur.

Ik zag in content.xml dat je ook andere attributen van een tabel aan kunt passen. Wanneer je een beetje handig bent met XQuery en XSL kun je dus via de achterkant - zo noemde onze databasebeheerder dat vroeger - heel snel documenten aanpassen. Maar het lijkt me wel heeeel raadzaam om eerst een goede backup te maken.

In een ander document had ik een tabel aangemaakt met auto-opmaak en een eerder aangemaakt tabelopmaakprofiel.
De struktuur van de tabel was wel overeenkomstig de verwachting maar het gebruikte lettertype en -grootte waren niet wat ik verwacht had. Daar moet ik dus nog naar kijken.

De onderstaande link is van ApacheOffice en is bijna woordelijk gelijk en eenvoudiger. Eerst had ik het idee dat het in LibreOffice veranderd was.
Auto opmaak Apache

Ik heb geen idee over het bewerken van een XML bestand. Op de Engelstalige forums zijn wel personen die zowel verstand hebben van XML of een macro kunnen maken die een tabel aanpast op cel niveau.

Autoopmaak
Ik heb zelf het idee gekregen dat een template maken voor de automaak alleen goed werkt wanneer begonnen wordt met een tabel van 4 kolommen en 4 rijen dus 16 cellen.
In writer moest ik ook minimaal twee cellen selecteren voor de opmaak van de achtergrond kleur.
Wanneer ik in calc begon moest ik heel goed letten op de gewenste celranden. Calc heeft in principe geen celranden ook al zie je wel randen.

Het toepassen van een autoopmaak op een reeks tabellen is niet zo moeilijk met een macro. Het kan wel afhankelijk zijn van hoe complex de tabellen zijn. Het veranderen van een enkele cel maakt het echt moeilijk.

Het blijkt gemakkelijk te zijn dan ik dacht maar soms zijn er ook tegenvallers als we elkaar niet goed begrepen hebben.
Het is voor een deel ook het resultaat van een ander project. Die macro’s zitten er ook nog in.
benEngberts02.odt (12.1 KB)

als ik het goed heb gaat het over deze code

REM  *****  BASIC  *****
option explicit

' Deze zijn voor Ben
private const GewensteCel = "B1" 
private const Gewenstekleur = &HCCCCCC

sub werk_met_thiscomponent
' Deze aanroep veranderd alle gewenste cellen in een tabel
dim oDoc
oDoc = thiscomponent
call VeranderKleurvanCel(oDoc)
end sub

sub VeranderKleurvanCel(oDoc)
dim oTables , oTable ,x,sTableName
oTables = oDoc.TextTables

for each sTableName in oTables.getElementNames
	oTable = oTables.getbyname(sTableName)
	 oTable.getCellByName(GewensteCel).BackColor= Gewenstekleur ' RGB(&HCC,&HCC,&HCC) : end
next sTableName
end sub